我有 GridView 和一个按钮,如下所示。然后我将 gridview 与数据库中的数据绑定。 GridView 有两个隐藏字段:Id 和 ClassIndex。
当我选择一个复选框并单击按钮时,我想获取相应的 ID 和文件名。
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="check" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:HiddenField ID="hdfId" runat ="server" Value='<%#Eval("Id") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:HiddenField ID="hdfClssIndex" runat ="server" Value='<%#Eval("ClassIndex") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:Label ID="lblFileName" runat ="server" Text='<%#Eval("FileName") %>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
和按钮喜欢
<asp:Button ID="Button1" runat="server" onclick="Button1_Click"
Text="Send Request" />
按钮后面的代码是
protected void Button1_Click(object sender, EventArgs e)
{
foreach (GridViewRow row in GridView1.Rows)
{
var check = row.FindControl("check") as CheckBox;
if (check.Checked)
{
int Id = Convert.ToInt32(row.Cells[1].Text);
//some logic follws here
}
}
}
但我收到类似的错误
输入字符串的格式不正确。
错误是什么以及如何解决?
你的循环正确。
但你忘了注意到一件事,当你想访问时CheckBox
你做了一个FindControl
on row
。这意味着您正在尝试在该行中找到一些控制。
那你为什么要访问HiddenField
控制内行row.Cell[1].Text
?
也尝试找到这一点。
int Id = Convert.ToInt32(((HiddenField)row.FindControl("hdfId")).Value);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)