checkbox.checkedchanged事件问题。如何找出已更改/未更改的复选框

时间:2011-07-04 18:12:50

标签: c# asp.net checkbox oncheckedchanged

我正在使用中继器:

<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但是如何找出点击了哪个复选框?提前谢谢!

2 个答案:

答案 0 :(得分:4)

你可以尝试

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

答案 1 :(得分:0)

也许你应该重新设计你的UI架构,因为仅仅为了更改CheckBox(这是一个布尔参数)而导致完整的回发是不可接受的。我想你可以在这里使用ajax:

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