访问单独数据列表中的字符串值

本文关键字:字符串 列表 单独 数据 访问 | 更新日期: 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>&nbsp;

</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
}

祝你好运!