ユーザーがチェックボックスを選択するグリッドビューの ID 列にアクセスしようとして、頭を悩ませました。
<asp:GridView ID="gvUserFiles" runat="server">
<Columns>
<asp:TemplateField HeaderText="Select" ItemStyle-HorizontalAlign="Center" >
<ItemTemplate>
<asp:CheckBox ID="chkSelect" runat="server" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
グリッドビューの列は、chkSelect (チェックボックス)、Id、fileName、CreateDate です。
ユーザーがチェックボックスをオンにしてボタンを押すと、「id」列の値を受け取りたいです。
ボタンのコードは次のとおりです。
foreach (GridViewRow row in gvUserFiles.Rows)
{
var test1 = row.Cells[0].FindControl("chkSelect");
CheckBox cb = (CheckBox)(row.Cells[0].FindControl("chkSelect"));
//chk = (CheckBox)(rowItem.Cells[0].FindControl("chk1"));
if (cb != null && cb.Checked)
{
bool test = true;
}
}
cb.checked は常に false を返します。