获取gridview VB.NET中BoundField元素的实际值

获取gridview VB.NET中BoundField元素的实际值,vb.net,gridview,selecteditem,selectedvalue,selectedindex,Vb.net,Gridview,Selecteditem,Selectedvalue,Selectedindex,下图描述了我拥有的完整gridview: 我可以得到后端第二列(project_ID)的值,如下所示: Dim val As String = grdProjects.SelectedRow.Cells(1).Text.ToString 例如,如果我按下第三行的Select,我将返回值3。 我的问题出现在gridview更新时,并且记录较少,如下图所示 如果我按下第二条记录,我得到的是值2,而不是我想要得到的值4 关于如何获取单元格的实际值而不是所选行数,请给出任何建议?我可能有错误,但在

下图描述了我拥有的完整gridview:

我可以得到后端第二列(project_ID)的值,如下所示:

Dim val As String = grdProjects.SelectedRow.Cells(1).Text.ToString
例如,如果我按下第三行的Select,我将返回值3。 我的问题出现在gridview更新时,并且记录较少,如下图所示

如果我按下第二条记录,我得到的是值2,而不是我想要得到的值4


关于如何获取单元格的实际值而不是所选行数,请给出任何建议?

我可能有错误,但在VB.net数据网格中,SelectedRow不存在,SelectedRow确实存在。 无论如何,请尝试这种方式,并让我知道它是否有效:

在RowEnter或CellClick事件上,使用E.RowIndex获取所需内容。按以下步骤进行:

Private Sub DataGrid1_RowEnter(sender As Object, e As DataGridViewCellEventArgs) Handles DataGrid1.RowEnter
     Dim CellValue As String = DataGrid1.Rows(e.RowIndex).Cells("Project_ID").Value.ToString
End Sub
请注意,对于.cells(),我使用列的名称,这会更好,因为如果将来添加列,则无需更改此代码。更简单的代码维护总是值得的!也。单元格().Value而不是单元格().Text


Nandostyle

请向我们展示代码隐藏中的代码,您如何从gridview中删除行(这很重要)?基础数据源是否也已更新?如果没有代码,很难理解发生了什么。您可能希望在受到攻击之前删除此答案。并非每个网格都是DataGridView。OP可能正在使用,但如果没有正确的标记,推断就会变得很常见。t谢谢你为我担心。但是,问题清楚地说明了GridView和VB.net。另外,这也是为什么我要他尝试的原因,我想他会让我知道他的网格不是DataGridView。ASP.net中有一个GridView,如果是这样的话,我也有一个解决方案。@Nandostyle我使用的是ASP:GridView元素,而不是DataGridView。如果您对如何获取单元格值有任何建议,请告诉我。试试;GRDProjects.Rows(e.RowIndex).cells(Project_ID).Text