我正在使用中继器:
<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但是如何找出点击了哪个复选框?提前谢谢!
答案 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.
});
});