我在 gridView 中有以下复选框功能-
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="chkRow" runat="server" OnCheckedChanged="CheckBoxPN_CheckedChanged" AutoPostBack="true" />
</ItemTemplate>
它为 gridView 中创建的每一行创建一个复选框。
我的问题是,在事件中-
protected void CheckBoxPN_CheckedChanged(Object sender, EventArgs e)
{
CheckBox chk = (CheckBox)sender;
GridViewRow row = (GridViewRow)chk.NamingContainer;
int gID = System.Convert.ToInt16(row.Cells[1].Text);
gridViewDataSource.SelectCommand = sqlCommand + gID;
}
我正在使用它来检索值。一旦用户检查了一个复选框,然后去检查另一个复选框,之前的复选框状态仍然处于选中状态。
在检查新的复选框时,如何修改代码以取消选中的最后一个复选框?
编辑
@Neil Knight 的答案实现了正确的功能,但是当我使用checked_changed
事件时,当新的复选框被选中时,这会触发事件并获得正确的答案。但是,当未选中前一个复选框时,这会再次触发事件并得到错误的答案。如何阻止gID
值被旧答案替换?