访问单独数据列表中的字符串值
本文关键字:字符串 列表 单独 数据 访问 | 更新日期: 2023-09-27 17:54:48
我有一个带有textBox和CheckBox的数据列表-
<asp:DataList runat="server" ID="pTextBox" >
<ItemTemplate>
<asp:CheckBox ID="CheckBoxPN" runat="server" Checked='false' OnCheckedChanged="CheckBoxPN_CheckedChanged" AutoPostBack="true" />
<asp:TextBox ID="profileTextBox" runat="server" Text='<%# Container.DataItem.ToString() %>'></asp:TextBox>
</ItemTemplate>
</asp:DataList>
后面的代码-
protected void CheckBoxPN_CheckedChanged(Object sender, EventArgs e)
{
CheckBox chk = (CheckBox)sender;
DataListItem item = (DataListItem)chk.NamingContainer;
TextBox txt = (TextBox)item.FindControl("profileTextBox");
string text = txt.Text;
TextBox2.Text = txt.Text;
}
当CheckBox和TextBox在同一个数据列表中时,这个方法很有效。
我的问题是我现在有两个像这样的数据-
<asp:Label ID="Label3" runat="server" Text="Exclude"></asp:Label>
<asp:DataList runat="server" ID="excludeTextBox">
<ItemTemplate>
<asp:TextBox ID="myTextBox" runat="server" Text='<%# Container.DataItem.ToString() %>'></asp:TextBox>
</ItemTemplate>
</asp:DataList>
<asp:DataList runat="server" ID="activeCheck" >
<ItemTemplate>
<asp:Label ID="Label4" runat="server" Text="Active"></asp:Label>
<asp:CheckBox ID="CheckBox1" runat="server" Checked='<%# Container.DataItem.ToString().Equals("1") %>' OnCheckedChanged="CheckBox1_CheckedChanged" AutoPostBack="true" />
</ItemTemplate>
</asp:DataList>
我需要访问myTextBox
文本值,当我点击CheckBox1
逻辑进入-
protected void CheckBox1_CheckedChanged(Object sender, EventArgs e)
{
// access string value in excludeTextBox
}
我该怎么做?
假设每个数据列表中的复选框和文本框匹配,您将以与之前非常相似的方式进行操作,但不是在相同的DataListItem中查找,而是在具有相同索引的另一个数据列表中查找项,如下所示:
protected void CheckBox1_CheckedChanged(Object sender, EventArgs e)
{
CheckBox chk = (CheckBox)sender;
DataListItem item = (DataListItem)chk.NamingContainer;
TextBox txt = (TextBox)excludeTextBox.Items[item.ItemIndex].FindControl("myTextBox");
//--- do work here with txt
}
祝你好运!