重复列表控件Repeater

翻译|其它|编辑:郝浩|2008-06-04 10:31:22.000|阅读 1782 次

概述:

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

Repeater控件并不是从WebControl类派生而来,所以不支持一些通用的格式。比如字体颜色等等。

格式:<asp:Repeater ID="MyRepeater" runat="server"></asp:Repeater>

注意:Repeater控件只支持模板,AlternatingItemTemplate、ItemTemplate、HeaderTemplate、FooterTemplate、SeparatorTemplate。其中ItemTemplate模板是强制性模板,必须拥有的。

数据源绑定方式两种:

第一:通过设置其DataSource属性来绑定数据源。缺点:初学者,背于Code-Behind.

第二:通过设置DataMember属性来动态绑定Repeater控件。

如何利用Repeater显示数据文件?代码如下:

<form id="form1" method="post" runat="Server">
 <asp:Repeater id="MyRepeater" runat="Server">
  <ItemTemplate>
   <%#DataBinder.Eval(Container.DataItem,"title")%>
  </ItemTemplate>
</from>

说明要点:<%#DataBinder.Eval(Container.DataItem,"数据库字段名称")%>

其中DataBinder是System.Web.UI命名空间中的一个类,Eval是一个静态方法,使用反射来计算数据绑定表达式。Repeater控件最常用的事件有3个分别是:ItemCommand、ItemCreated、ItemDataBound,当创建一个项或者一个项被绑定到数据源的时候,将分别触发ItemCreated和ItemDataBound事件,当Repeater控件中有按钮事件被触发时(通常是单击),将触发ItemCommand事件,用户可以用过RepeaterCommandEventArgs参数获取以下三个参数的值CommandArgument、CommandName和CommandSource.以此确定Repeater控件中按钮控件的名称和值。写了这么多,还是举一个例子吧。请看下面的代码:

<form id="form1" runat="server">
 <div>
  <asp:Repeater ID="MyRepeater" runat="server" DataSourceID="SqlDataSource1" OnItemCommand="MyRepeater_ItemCommand">
   <HeaderTemplate>
    <table border="1">
     <tr>
      <td>作者</td>
      <td>地址</td>
      <td>联系</td>
     </tr>
   </HeaderTemplate>
   <ItemTemplate>
    <tr>
     <td><%#Eval("au_lname") %></td>
     <td><%#Eval("Address") %></td>
     <td><asp:Button ID="btBuy" Text="联系" CommandArgument='<%#Eval("au_lname") %>' runat="server" /></td>
    </tr>
   </ItemTemplate>
   <FooterTemplate>
    </table>
   </FooterTemplate>
  </asp:Repeater>
  <asp:Label ID="ibBuy" runat="server"></asp:Label>
 </div>
</form>

下面对Repeater控件的ItemCommand事件进行编程,并且在Load事件中进行数据绑定。代码如下:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class Repeater : System.Web.UI.Page{
  protected void Page_Load(object sender, EventArgs e)
  {
    if (!IsPostBack)
    {
      SqlConnection myCon = new SqlConnection("Server=WuWei;DataBase=YourDataBase;User id=sa;pwd=123456");
      try
      {
        myCon.Open();
        SqlCommand myCmd = new SqlCommand("Select * from Orders", myCon);
        SqlDataReader reader = myCmd.ExecuteReader();
        this.MyRepeater.DataSource = reader;
        this.MyRepeater.DataBind();
      }
      finally
      {
        myCon.Close();
      }
    }
  }
  protected void MyRepeater_ItemCommand(object source, RepeaterCommandEventArgs e)
  {
    this.ibBuy.Text = e.CommandArgument.ToString();
  }
}

总结:注意数据绑定方法,其次养成好的习惯把容易出错误的代码放在try......finally里面.
标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com

文章转载自:CSDN

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP