由于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")  {
       // 操作
    }
  }
}

 

posted on 2018-08-09 15:11  欲穷  阅读(262)  评论(0编辑  收藏  举报