You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET前端搭配VB.NET后端如何获取GridView单元格Double类型值

问题原因

ASP.NET Web Forms 中System.Web.UI.WebControls.TableCell类没有Value属性,该属性是WinForm DataGridView控件的专属属性,这是你首次运行报错的根本原因。直接调用TableCell.ToString返回的是控件元数据而非单元格内存储的实际值,因此无法拿到正确的数值文本。

解决方案

场景1:单元格无嵌套控件,直接展示文本

直接读取TableCell的Text属性后转换为Double即可,推荐使用Double.TryParse做安全转换,避免值为空或格式不匹配时报错:

Dim tmpMax As Double
Dim cellValue As String = Me.Dgv_Result1.Rows(1).Cells(columnName).Text.Trim()

' 安全转换数值
If Not Double.TryParse(cellValue, tmpMax) Then
    ' 转换失败时可自定义默认值,比如赋值为0
    tmpMax = 0
End If

场景2:单元格内嵌套了Label、Literal等绑定控件

如果你的GridView列使用模板列,数值放在嵌套控件里,需要先找到对应控件再读取文本:

Dim tmpMax As Double
' 替换为你实际绑定数值的控件ID
Dim targetCtrl As Control = Me.Dgv_Result1.Rows(1).Cells(columnName).FindControl("绑定数值的控件ID")

If targetCtrl IsNot Nothing AndAlso Double.TryParse(targetCtrl.Text.Trim(), tmpMax) Then
    ' 转换成功可直接使用tmpMax
Else
    tmpMax = 0
End If
补充说明
  • GridView的行索引从0开始,如果你的GridView开启了表头展示,Rows(0)对应表头行,第一行业务数据为Rows(1),如果未开启表头,Rows(0)就是第一行业务数据,使用时注意索引匹配。
  • 不要直接使用CDbl转换,遇到空值、非数值格式的内容时会直接抛出运行时异常,TryParse可以更好的兼容异常场景。

内容的提问来源于stack exchange,提问作者Sanjay Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 02:09:02