我正在尝试访问第一个单元格的整数值,但我收到此错误:
无法将“System.Web.UI.WebControls.DataControlFieldCell”类型的对象强制转换为“System.IConvertible”。
我存储在该单元格中的值是一个像810这样的ID
我的代码
int myID = Convert.ToInt32(GridView1.Rows[rowIndex].Cells[0]);
答案 0 :(得分:6)
Cells[0]
会返回DataControlFieldCell
个对象,而不是单元格的值
使用单元格的Text
属性。
答案 1 :(得分:5)
GridView1.Rows[rowIndex].Cells[0].Text
- 或 -
GridView1.Rows[rowIndex].Cells[0].Value
随着时间的推移,微软引入了这些愚蠢的含糊之处,使程序员的生活变得更加艰难。
答案 2 :(得分:0)
试试这两个代码都是有价值的
int SB = Convert.ToInt32(gdTest.SelectedRow.Cells[1].Text);
---------OR-------
int AS = Convert.ToInt32(gdTest.Rows[1].Cells[1].Text);
答案 3 :(得分:0)
在GridView / FormView中检索单元格值的推荐方法是使用ExtractValuesFromCell()方法。请参见下面的示例:
foreach(var row in GridView.Rows)
{
// retrieve all cell values in a row as a ordered dictionary.
IOrderedDictionary cellValues = new OrderedDictionary();
foreach(DataControlFieldCell cell in row.Cells)
{
cell.ContainingField.ExtractValuesFromCell(cellValues, cell, row.RowState, true);
}
// now do something with the cellValues for e.g read the columns value
// like - cellValues["EmployeeName"]
}
返回的值是字符串,可以在System.Convert类的帮助下进行转换。