不管怎样,我在中继器数据行内设置了类,当进行回发时,通过数据ID查找

本文关键字:数据 查找 ID 中继器 设置 不管怎样 | 更新日期: 2023-09-27 18:28:33

我想在为那些数据ID做PostBack时为中继器设置类,但不可以/不能?下面的代码只是示例显示:

<body>
  <form id="form1" runat="server">
      <asp:ScriptManager ID="ScriptManager1"  EnablePartialRendering="true"  runat="server" EnablePageMethods="true" />
     <asp:UpdatePanel ID="UpdatePanel2" runat="server" >
                <ContentTemplate>
                      <asp:Repeater ID="Repeater1" runat="server" DataSourceID="dsInbox">
                        <ItemTemplate>
                          <tr id="trInbox"> 
                            <td width="370px" height="25px"><div align="left" class="style95">&nbsp;<%# DisplaySubject(Eval("inbSubject").ToString(), Eval("inbMsg").ToString())%></div></td> 
                            <td width="80px" height="25px"><div align="left" class="style95">&nbsp;<%# Eval("inbCreatedAt","{0:MM-dd-yyyy}") %></div></td> 
                            <td width="94px" height="25px"><div align="left" class="style95">&nbsp;<%# Eval("DataId") %></div></td> 
                          </tr>   
                        </ItemTemplate>
                        </asp:Repeater>
                        </ContentTemplate>
            </asp:UpdatePanel>   

在代码C#后面,我可以创建类/样式i wan

 protected void Page_Load(object sender, EventArgs e)
    {
            if (IsPostBack)
            {
                Repeater1.DataBind();
               //find the data row ID and set class/style when loaded
            }
        }

不管怎样,我在中继器数据行内设置了类,当进行回发时,通过数据ID查找

如果您想为每行绑定设置一个类,并且需要数据ID,那么您最好的方法是在每行绑定时进行处理:

<asp:Repeater ID="Repeater1" runat="server" DataSourceID="dsInbox"
              OnItemDataBound="Repeater1_ItemDataBound">

在代码背后:

protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
    if ((e.Item.ItemType == ListItemType.Item) || (e.Item.ItemType == ListItemType.AlternatingItem))
    {
        MyType myItem = (MyType)e.Item.DataItem;
        var dataId = myItem.DataId;
        // Do whatever you need here.
    }
}