gridView に次の checkBox 関数があります。
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="chkRow" runat="server" OnCheckedChanged="CheckBoxPN_CheckedChanged" AutoPostBack="true" />
</ItemTemplate>
gridView で作成されたすべての行に対して checkBox を作成します。
私の問題は、イベントで-
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
イベントを使用しているため、新しい checkBox がチェックされると、イベントが発生し、正しい回答が得られます。ただし、前の checkBox がオフになると、これが再びイベントを発生させ、間違った回答を取得します。gID
値が古い回答に置き換えられないようにするにはどうすればよいですか?