いくつかのデータを表示するグリッドビューがあり、チェックボックス列が追加されているため、選択したアイテムを削除できます。私のグリッドビューは次のようにレイアウトされています:
<div class = "my_gv">
<asp:UpdatePanel ID = "update_panel" UpdateMode = "Conditional" runat = "server">
<ContentTemplate>
<asp:GridView ID="my_gv" runat="server" AutoGenerateColumns = "False"
GridLines="None" Width="100%" AllowSorting="True"
CssClass="table table-bordered x-condensed cameraDetails" OnRowDataBound = "my_gv_RowDataBound">
<Columns>
<asp:TemplateField>
<HeaderTemplate>
<asp:CheckBox ID="SelectAll_ChckBx" runat="server" onclick="selectAllCheckBoxes(this);" meta:resourceKey="SelectAll_ChckBxResource1" />
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="row_select_checkbox" runat="server" meta:resourceKey="row_select_checkbox_resource" />
</ItemTemplate>
<HeaderStyle CssClass="CAMheader" />
<ItemStyle CssClass="itemEntry chkBx" Width="25px" />
</asp:TemplateField>
// snip
削除を処理する私のロジックは次のことを行います。
foreach (GridViewRow row in my_gv.Rows)
{
if (row.RowType != DataControlRowType.DataRow)
{
continue;
}
var chkBox = row.FindControl("row_select_checkbox");
if (chkBox.Checked)
{
// snip
}
これは私には理にかなっているように思えますが、チェックボックスの実際の状態に関係なく、.Checked メソッドは常に false を返します。グリッドビューから他の (テキスト) 列に問題なくアクセスできます。
それで、私は何を間違っていますか?チェックボックスの状態を正確に取得するにはどうすればよいですか? 助けてくれてありがとう