0

我正在使用中继器:

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

4

2 回答 2

4

你可以试试

CheckBox checkBox = (CheckBox)sender;
var id = checkBox.Attributes["data-id"];
于 2011-07-04T18:17:51.043 回答
0

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

 $(function(){
     $('input[type=checkbox]').click(function(){
          // Initializing an ajax call here, and updating DOM based on response.
     });
 });
于 2011-07-04T18:26:12.680 回答