我正在尝试访问第一个单元格的整数值,但是出现了以下错误:
无法将类型为'System.Web.UI.WebControls.DataControlFieldCell'的对象转换为类型'System.IConvertible'。
而我在该单元格中存储的值是像810这样的ID
我的代码:
int myID = Convert.ToInt32(GridView1.Rows[rowIndex].Cells[0]);
Cells[0]
返回的是 DataControlFieldCell
对象,而非单元格的值。
请使用单元格的 Text
属性。
GridView1.Rows[rowIndex].Cells[0].Text
--or--
GridView1.Rows[rowIndex].Cells[0].Value
随着时间的推移,微软引入这些愚蠢的模糊性,使得程序员的生活更加艰辛。
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"]
}
试试这两个代码都是有效的
int SB = Convert.ToInt32(gdTest.SelectedRow.Cells[1].Text);
---------OR-------
int AS = Convert.ToInt32(gdTest.Rows[1].Cells[1].Text);
GridView1
的第rowIndex
行第 0 列的文本转换为整数,使用Convert.ToInt32()
。 - SLaks