0

textBoxとCheckBoxを含む1つのDataListがあります-

<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が同じDataListにある場合に扱います。

私の問題は、今のように2つのDataListがあることです-

<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

    }

これどうやってするの?

4

1 に答える 1

1

各データリストのチェックボックスとテキストボックスが一致すると仮定すると、以前と同じように行うことができますが、同じ DataListItem を調べる代わりに、同じインデックスを持つ他の DataList の項目を見つけることができます。 、 このような:

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
}

幸運を!

于 2013-01-21T17:15:02.757 に答える