【问题标题】:Get the actual value of a BoundField element in a gridview VB.NET获取gridview VB.NET中BoundField元素的实际值
【发布时间】:2018-05-24 16:17:57
【问题描述】:

下图描绘了我拥有的完整网格视图:

我能够在后端获取第二列 (project_ID) 的值,如下所示:

Dim val As String = grdProjects.SelectedRow.Cells(1).Text.ToString

例如,如果我按下第三行的 Select,我将返回值 3。 当 gridview 更新并且下图中的记录较少时,就会出现我的问题。

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

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

【问题讨论】:

  • 请向我们展示您后面代码中的代码,您如何从 gridview 中删除行(这很重要)?底层数据源是否也更新了?没有代码很难理解发生了什么。

标签: vb.net gridview selecteditem selectedvalue selectedindex


【解决方案1】:

我可能错了,但在 VB.net 数据网格中 SelectedRow 不存在,SelectedRows 确实存在。 不管怎样,试试这个方法,让我知道它是否有效:

在 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(),我使用列的名称,这样会更好,因为如果将来您添加列,则无需更改此代码。更容易的代码维护总是有偿的!还。 Cell().Value 代替 Cell().Text

Nandostyle

【讨论】:

  • 您可能想在受到打击之前删除此答案。并非每个网格都是 DataGridView。 OP 很可能使用GridView Class,但如果没有适当的标记,推理变得很常见。
  • TnTinMn 感谢您为我担心。但是,这个问题清楚地说明了 GridView 和 VB.net。另外,这就是我要他尝试的原因,我想他会让我知道他的网格不是 DataGridView。 ASP.net 中有一个 GridView,如果是这样我也有他的解决方案。
  • @Nandostyle 我使用 asp:GridView 元素,而不是 DataGridView。如果您对如何获取单元格值有任何建议,请告诉我。
  • 试试; GRDProjects.Rows(e.RowIndex).cells(Project_ID).Text
猜你喜欢
  • 2011-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-08
  • 1970-01-01
相关资源
最近更新 更多