我有GridView和一个按钮,如下所示。然后我用我的数据库中的数据绑定gridview。 GridView有两个Id和ClassIndex的隐藏字段。 当我选择一个复选框并单击按钮时,我想获得相应的Id和FileName。
<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>
和Button Like
<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
}
}
}
但是我收到了像
这样的错误输入字符串的格式不正确。 错误是什么以及如何解决?
答案 0 :(得分:2)
你的循环正确。
但是你忘了注意这里有一件事,当你想CheckBox
访问FindControl
row
HiddenField
时。这意味着您正试图在该行中找到一些控件。
那你为什么要用row.Cell[1].Text
访问行内的int Id = Convert.ToInt32(((HiddenField)row.FindControl("hdfId")).Value);
控件?
试着找到它。
$.get( "ajax/test.html", function( data ) {
console.log(data);
});