如何从Chechbox.checked的Gridview获取Id?

我有GridView和一个按钮如下。 然后我用我的数据库中的数据绑定gridview。 GridView有两个Id和ClassIndex的隐藏字段。 当我选择一个复选框并单击按钮时,我想获得相应的Id和FileName。

         <asp:HiddenField ID="hdfId" runat ="server" Value='' />     <asp:HiddenField ID="hdfClssIndex" runat ="server" Value='' />     <asp:Label ID="lblFileName" runat ="server" Text='' />     

和按钮喜欢

  

按钮后面的代码是

 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 } } } 

但我得到一个错误

输入字符串的格式不正确。 什么是错误以及如何解决?

在此处输入图像描述

你的循环正确。

但是你忘了在这里注意到一件事,当你想访问CheckBoxrow上做了一个FindControl 。 这意味着您正试图在该行中找到一些控件。

那你为什么要用row.Cell[1].Text访问行内的HiddenField控件呢?
试着找到它。

int Id = Convert.ToInt32(((HiddenField)row.FindControl("hdfId")).Value);