Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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# checkbox.checkchanged事件问题。如何确定选中/未更改的复选框_C#_Asp.net_Checkbox_Oncheckedchanged - Fatal编程技术网

C# checkbox.checkchanged事件问题。如何确定选中/未更改的复选框

C# checkbox.checkchanged事件问题。如何确定选中/未更改的复选框,c#,asp.net,checkbox,oncheckedchanged,C#,Asp.net,Checkbox,Oncheckedchanged,我用的是中继器: <form id="form1" runat="server"> <div> <asp:Repeater ID="repeater" runat="server" OnItemDataBound="repeater_ItemDataBound"> <ItemTemplate> <tr> <td&

我用的是中继器:

<form id="form1" runat="server">
    <div>
        <asp:Repeater ID="repeater" runat="server" OnItemDataBound="repeater_ItemDataBound">
            <ItemTemplate>
                <tr>
                    <td>
                        <asp:CheckBox ID="checkbox" runat="server" AutoPostBack="false" OnCheckedChanged="Check_Clicked" data-id='<%# DataBinder.Eval(Container.DataItem, "ProfileID") %>'
                            Text="I agree" />
                    </td>
                    <td>
                        <asp:Label ID="lblProfileDesc" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "ProfileDesc") %>'></asp:Label>
                    </td>
                </tr>
                <br />
            </ItemTemplate>
        </asp:Repeater>
        <asp:Button ID="btn" runat="server" Text="Click" onclick="btn_Click" />
    </div>
    </form>


我正在处理onCheckedChange,但是如何才能找到单击了哪个复选框?提前谢谢

你可以试试

CheckBox checkBox = (CheckBox)sender;
var id = checkBox.Attributes["data-id"];
你可以试试

CheckBox checkBox = (CheckBox)sender;
var id = checkBox.Attributes["data-id"];

也许你应该重新设计你的UI架构,因为仅仅因为一个复选框(这是一个布尔参数)的改变而导致一篇完整的回帖是不可接受的。我认为您可以在这里使用ajax:

 $(function(){
     $('input[type=checkbox]').click(function(){
          // Initializing an ajax call here, and updating DOM based on response.
     });
 });

也许你应该重新设计你的UI架构,因为仅仅因为一个复选框(这是一个布尔参数)的改变而导致一篇完整的回帖是不可接受的。我认为您可以在这里使用ajax:

 $(function(){
     $('input[type=checkbox]').click(function(){
          // Initializing an ajax call here, and updating DOM based on response.
     });
 });

AutoPostBack属性设置为false,因此我正在处理按钮单击事件中的逻辑:)是的,你说得对,我没有注意到:)。但是,ajax对布尔操作的调用,如喜欢或不喜欢、检查或取消选中等,现在仍然非常普遍;)我知道现在已经无法逃避AJAX,但我正在学习jQuery atm。完成后,我将直接进入AJAX。谢谢你的建议,谢谢!CheareSautoPostBack属性设置为false,因此我正在处理button_click事件中的逻辑:)是的,你说得对,我没有注意到:)。但是,ajax对布尔操作的调用,如喜欢或不喜欢、检查或取消选中等,现在仍然非常普遍;)我知道现在已经无法逃避AJAX,但我正在学习jQuery atm。完成后,我将直接进入AJAX。谢谢你的建议,谢谢!干杯谁投票赞成这个答案?他说他不是在复选框的检查事件上发帖,而是在点击按钮时发帖。换句话说,在按钮的单击处理程序中,发送者是按钮,而不是复选框。@s如果AutoPostBack设置为false,则当复选框被选中/取消选中时,OnCheckedChanged将不会触发,但在下一次回发期间(可能由按钮触发,也可能是其他原因)会触发,发件人仍然是一个复选框。真奇怪;在我的ASP.NET体验中没有遇到过这种情况。谢谢:)谁投票赞成这个答案?他说他不是在复选框的检查事件上发帖,而是在点击按钮时发帖。换句话说,在按钮的单击处理程序中,发送者是按钮,而不是复选框。@s如果AutoPostBack设置为false,则当复选框被选中/取消选中时,OnCheckedChanged将不会触发,但在下一次回发期间(可能由按钮触发,也可能是其他原因)会触发,发件人仍然是一个复选框。真奇怪;在我的ASP.NET体验中没有遇到过这种情况。谢谢:)