【发布时间】:2019-11-19 16:20:56
【问题描述】:
我需要有关此代码的帮助,我检查GridView 中的每一行是否选中了CheckBox。但是还是有假的。你能帮帮我吗?
<asp:GridView ID="GridView1" CssClass="tabulka" runat="server" AutoGenerateColumns="false" />
<Columns>
<asp:TemplateField HeaderText="Placení">
<ItemTemplate>
<asp:CheckBox ID="Poslano" runat="server" Text="Vyřešeno" />
<asp:HiddenField ID="id" runat="server" Value='<%# Eval("id").ToString() %>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
<FooterStyle BackColor="#CCCCCC" />
<HeaderStyle BackColor="Black" Font-Bold="True" ForeColor="White" />
</asp:GridView>
protected void Button1_Click(object sender, EventArgs e)
{
foreach (GridViewRow gvRow in GridView1.Rows)
{
if (((CheckBox)gvRow.FindControl("Poslano")).Checked) // here is a problem - still false
{
Tabor tab = new Tabor();
tab.Id = Convert.ToInt32(((HiddenField)gvRow.FindControl("id")).Value); // here is good value
}
}
}
【问题讨论】:
-
很久没用WebForms了。但我认为您需要确定那里的回发问题,请参阅stackoverflow.com/a/34545012/2946329
-
您确定在单击按钮之前检查复选框吗?另一个重要的事情是 Page_Load 的主体。如果您在
Page_Load中填写GridView,则必须在if (!IsPostBack)中填写filling代码。你能告诉我们 Page_Load 的正文吗? -
大家好,问题已解决! Eldeniz - 你是对的!它位于 (!IsPostBack) 部分的 Page_Load 中。你让我今天一整天都感觉很好! :)
标签: c# checkbox gridview webforms gridviewrow