访问另一个数据绑定控件中的数据事件&在嵌套的数据列表中查找控件

本文关键字:控件 数据 嵌套 列表 查找 另一个 访问 事件 数据绑定 | 更新日期: 2023-09-27 18:12:44

我在另一个数据列表中有一个数据列表。我想访问子数据列表"dlQuestion"事件,ItemDataBound事件。此外,我试图在子数据列表中找到控件LableControl"lblQuestion"。我怎么做呢?这里是标记:

<asp:DataList ID="dlSection" runat="server" Width="100%">
   <ItemTemplate>
       <div>
         <asp:Label ID="lblSection" runat="server" Text='<%# Eval("Section") %>'></asp:Label>
         <asp:HiddenField ID="hfSectionId" runat="server" Value='<%# Eval("SectionId") %>' />
        </div>
        <asp:DataList ID="dlQuestion" runat="server"  >
        <ItemTemplate>
           <asp:Label ID="lblQuestion" runat="server" Text='<%# Eval("Question") %>'></asp:Label></td>
           <asp:HiddenField ID="hfQuestionId" runat="server" Value='<%# Eval("QuestionId") %>' />
        </ItemTemplate>
       </asp:DataList>
    </ItemTemplate>
</asp:DataList>

访问另一个数据绑定控件中的数据事件&在嵌套的数据列表中查找控件

您需要处理dlQuestion数据列表的ItemDataBound事件,并在该事件处理程序中获取lblQuestion标签:

标记:

<asp:DataList ID="dlSection" runat="server" Width="100%">
     <ItemTemplate>
          <div>
               <asp:Label ID="lblSection" runat="server" Text='<%# Eval("Section") %>'></asp:Label>
               <asp:HiddenField ID="hfSectionId" runat="server" Value='<%# Eval("SectionId") %>' />
          </div>
          <asp:DataList ID="dlQuestion" runat="server" OnItemDataBound="dlQuestion_ItemDataBound">
               <ItemTemplate>
                    <asp:Label ID="lblQuestion" runat="server" Text='<%# Eval("Question") %>'></asp:Label></td>
                    <asp:HiddenField ID="hfQuestionId" runat="server" Value='<%# Eval("QuestionId") %>' />
               </ItemTemplate>
          </asp:DataList>
     </ItemTemplate>
</asp:DataList>

后台代码:

protected void dlQuestion_ItemDataBound(object sender, DataListItemEventArgs e)
{
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    {
        var lblQuestion = e.Item.FindControl("lblQuestion") as Label;
        if (lblQuestion != null)
        {
            lblQuestion.ForeColor = Color.Red;
        }
    }
}

这是在子数据列表中查找标签控件的一种方法…

 //here I am finding item(DataList) of child Datalist
 DataList dlSubChild = (DataList)childItem.FindControl("dlSubChild");
 foreach (DataListItem subChildItem in dlSubChild.Items)
 {
       //here I am finding item(TextBox) of sub child Datalist
       TextBox txtName = (TextBox)subChildItem.FindControl("txtName");

      //set literal(litName) text
     litName.Text = string.Format("{0}{1}", "Welcome ", txtName.Text);
}