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

无法从DataGridView(gv_Quals)列中获取正确值的问题

解决DataGridView单元格取值返回控件类型字符串的问题

嘿,我一眼就get到你卡在哪了——你现在的代码直接调用了DataControlFieldCell对象的ToString()方法,它默认返回的就是控件的完整类型名称(也就是你看到的System.Web.UI.WebControls.DataControlFieldCell),根本不是单元格里的实际数据值!

问题根源

你写的这段代码:

String txtUnitID = gv_Quals.Rows[rowIndex].Cells[1].ToString();

这里的Cells[1]返回的是单元格控件本身,不是它承载的内容,所以直接ToString肯定拿不到你想要的数值5。

正确的解决方法

根据你的GridView列类型,有几种靠谱的取值方式:

1. 直接访问单元格的Text属性(适合BoundField列)

如果你的Unit ID列是绑定字段的BoundField,直接用Text属性就能拿到显示的数值:

String txtUnitID = gv_Quals.Rows[rowIndex].Cells[1].Text;

2. 访问单元格的Value属性(适合绑定数据源的场景)

如果GridView是直接绑定数据源(比如DataTable),用Value属性可以获取数据源里的原始值,避免格式转换问题,加上空值判断更稳妥:

String txtUnitID = gv_Quals.Rows[rowIndex].Cells[1].Value?.ToString();

3. 模板列的特殊处理(如果是TemplateField)

要是Unit ID列是模板列(里面放了Label、TextBox这类控件),得先找到对应的控件再取值:

// 假设模板里的Label控件ID是lblUnitID
Label lblUnitID = (Label)gv_Quals.Rows[rowIndex].FindControl("lblUnitID");
String txtUnitID = lblUnitID?.Text;

小建议

调试的时候可以查看Cells[1]的属性列表,确认Text或Value里是否是你要的5,这样能更快定位问题~

内容的提问来源于stack exchange,提问作者Jack Henry

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:37:37