访问GridView单元格值

时间:2011-09-23 20:15:26

标签: c# asp.net gridview

我正在尝试访问第一个单元格的整数值,但我收到此错误:

  

无法将“System.Web.UI.WebControls.DataControlFieldCell”类型的对象强制转换为“System.IConvertible”。

我存储在该单元格中的值是一个像810这样的ID

我的代码

int myID = Convert.ToInt32(GridView1.Rows[rowIndex].Cells[0]);

4 个答案:

答案 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类的帮助下进行转换。