Доступ к значению ячеек GridView - PullRequest
4 голосов
/ 24 сентября 2011

Я пытаюсь получить доступ к целочисленному значению первой ячейки, но получаю эту ошибку:

Невозможно привести объект типа 'System.Web.UI.WebControls.DataControlFieldCell'введите 'System.IConvertible'.

И значение, которое я сохранил в этой ячейке, является идентификатором типа 810

Мой код

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

Ответы [ 4 ]

6 голосов
/ 24 сентября 2011

Cells[0] возвращает объект DataControlFieldCell, а не значение ячейки.
Используйте свойство Text ячейки.

5 голосов
/ 07 ноября 2012
GridView1.Rows[rowIndex].Cells[0].Text

- или -

GridView1.Rows[rowIndex].Cells[0].Value

Делает жизнь программиста тяжелее с этими глупыми двусмысленностями, введенными Microsoft с течением времени.

0 голосов
/ 20 июня 2018

Рекомендуемый подход для получения значения ячейки в 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.

0 голосов
/ 19 сентября 2014

Попробуйте это оба кода имеют значение

 int SB = Convert.ToInt32(gdTest.SelectedRow.Cells[1].Text);

              ---------OR-------

int AS = Convert.ToInt32(gdTest.Rows[1].Cells[1].Text);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...