ASP.NET に GridView があり、この GridView の列内に以下のコントロールがあります。
<asp:TemplateField>
<ItemTemplate>
<input id='<%#Eval("po_asn_number") %>' class="css-checkbox" type="checkbox" />
<label for='<%#Eval("po_asn_number") %>' name="lbl_1" class="css-label"></label>
<asp:HiddenField ID="poid" runat="server" Value='<%#Eval("po_asn_number") %>' />
</ItemTemplate>
</asp:TemplateField>
これはコード ビハインドの OnClick イベントです。
protected void create_Click(object sender, EventArgs e)
{
foreach (GridViewRow gvr in GridView1.Rows)
{
HiddenField poid = ((HiddenField)gvr.Cells[0].FindControl("poid"));
if (((HtmlInputCheckBox)gvr.FindControl(poid.Value)).Checked == true)
{
Response.Redirect("ShipmentDetail.aspx?id=" + poid.Value);
}
else
{
//Do nothing
}
}
}
ここで最初にやろうとしていることは、値が の ID である HiddenField を探します<input type="checkbox" />
。次に、がチェックされているかどうかを確認してcheckbox
います。もしそうなら、何か他のことをして何もしないでください。
ボタンをクリックすると、エラーが発生します。
Object reference not set to an instance of an object
Line 48: if (((HtmlInputCheckBox)gvr.FindControl(checkbox)).Checked == true)
Line 49: {
Line 50: Response.Redirect("ShipmentDetail.aspx?id=" + poid.Value);
あなたが提供できるどんな助けも高く評価されます。