Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 选中一个复选框';它在中继器内_C#_Asp.net_Webforms - Fatal编程技术网

C# 选中一个复选框';它在中继器内

C# 选中一个复选框';它在中继器内,c#,asp.net,webforms,C#,Asp.net,Webforms,在我的repeater的ItemTemplate中,我有一个复选框和一个禁用的TextBox,我需要实现这个想法:TextBox只有在复选框被选中时才会被启用。。因此,我将复选框AutoPostBack设置为true,并尝试将此代码放入ItemDataBound中。但是我找不到我的控件,这很奇怪,因为我使用了相同的代码,但是在循环“MyRptr.Item[I].FindControl….”中,它可以工作。。我不想遍历所有项目,我只希望我能知道创建复选框的项目编号或位置。我还尝试为复选框的Chec

在我的repeater的ItemTemplate中,我有一个复选框和一个禁用的TextBox,我需要实现这个想法:TextBox只有在复选框被选中时才会被启用。。因此,我将复选框AutoPostBack设置为true,并尝试将此代码放入ItemDataBound中。但是我找不到我的控件,这很奇怪,因为我使用了相同的代码,但是在循环“MyRptr.Item[I].FindControl….”中,它可以工作。。我不想遍历所有项目,我只希望我能知道创建复选框的项目编号或位置。我还尝试为复选框的CheckedChanged事件创建事件句柄,但我也找不到复选框

protected void MyRptr_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            CheckBox ChkBx = e.Item.FindControl("IsSelected_ChkBx") as CheckBox;
            if (ChkBx.Checked == true)
            {
                TextBox TxtBx = e.Item.FindControl("Value_TxtBx") as TextBox;
                TxtBx.Enabled = true;
            }
        }


<asp:Repeater ID="MyRptr" runat="server" 
            onitemdatabound="MyRptr_ItemDataBound">
                <ItemTemplate>
                    <asp:CheckBox ID="IsSelected_ChkBx" runat="server" Text='<%# Eval("Item") %>' AutoPostBack="True" OnCheckedChanged="IsSelected_ChkBx_CheckedChanged" />
                    &nbsp;<asp:TextBox ID="Value_TxtBx" runat="server" Enabled="false"></asp:TextBox>
                    <asp:HiddenField ID="ID_HdnFld" runat="server" Value='<%# Eval("ID") %>' />
                </ItemTemplate>
                <SeparatorTemplate>
                    <br></br>
                </SeparatorTemplate>
            </asp:Repeater>
protectedvoid MyRptr\u ItemDataBound(对象发送方,RepeaterItemEventArgs e)
{
复选框ChkBx=e.Item.FindControl(“IsSelected_ChkBx”)作为复选框;
if(ChkBx.Checked==true)
{
TextBox TxtBx=e.Item.FindControl(“Value_TxtBx”)作为TextBox;
TxtBx.Enabled=true;
}
}



因此,基本上我需要一种干净简单的方法来实现我的逻辑,如果我能对发生的事情做出解释,那就太好了,所以有什么想法吗?

你可以找到如下文本框,但我认为最好使用jQuery而不是服务器端事件

protected void IsSelected_ChkBx_CheckedChanged(object sender, EventArgs e)
{
     var ch = (CheckBox)sender;
     var txt = ch.Parent.FindControl("Value_TxtBx") as TextBox;
}

(Y) 太好了。。那起作用了。。我认为JQuery或JavaScript通常会更好,你能帮我吗?我以前从未使用过JQuery或JavaScript。。你能提供一些代码吗。我不会让别人为我写代码,但我真的从来没有用过这个!