Asp.net Repeater控件的绑定与操作

由于repeater 控件具有的一个特性--循环 <ItemTemplate>的内容,Repeater 控件里的某个元素对象的绑定与获取,不像平常的,直接使用控件的 id 便可以给该控件进行操作控制。

<asp:textbox ID="text" runat="server" />

this.text.InnerHTml = "the textbox's text is 'Welcome To Here!'";

也因为id的唯一性,凡是在repeater控件包含的控件的id都是会根据浏览器或其他什么的……,在程序员定义的id里加上一些特定的标识,以保证id的唯一性。

1. asp:Repeater 控件代码

<asp:Repeater ID="RepDataList" runat="server"  OnItemDataBound="repDataBind"  OnItemCommand="repDataCommand">
  <ItemTemplate>
  <asp:HiddenField ID="hdNo" runat="server" Value='<%# DataBinder.Eval(Container.DataItem,"No")%>' />
     <asp:HiddenField ID="hdStatus" runat="server" Value='<%# DataBinder.Eval(Container.DataItem,"Status")%>' />
  <asp:LinkButton ID="btnUpdateStatus" runat="server" CommandName="updateStatus" >凍結</asp:LinkButton>
  </ItemTemplate>
</asp:Repeater>

2. asp:Repeater 控件事件

   RepeaterItemEventArgs  事件,绑定repeater控件项事件,使用 OnItemDataBound 属性来绑定调用

protected void repDataBind(object sender, RepeaterItemEventArgs e) {
  if ( e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) {
    // 通过id获取包含在Repeater控件里某一个控件
    HiddenField hdServerNo = (HiddenField)e.Item.FindControl("hdServerNo");
    LinkButton linkBtn = (LinkButton)e.Item.FindControl("btnUpdateStatus");
    // ………………
   }
}

RepeaterCommandEventArgs    项操作控制,用 OnItemCommand 来绑定调用

protected void repDataCommand(object source, RepeaterCommandEventArgs e) {
  if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) {
    // 通过name属性绑定控件
  if (e.CommandName == "updateStatus") {
    // 操作
    }
  }
}
上一篇:asp.net repeater控件操作


下一篇:ASP.NET- 查找Repeater控件中嵌套的控件