Как получить значение ячейки в связанном с строкой событии? и как проверить, является ли ячейка пустой?

Я использую sqldatasource и GridView. Я хочу получить значение ячейки из GridView в событии RowDataBound?, потому что я не могу использовать e.RowIndex.

Как проверить событие updatng, если ячейка пуста? Я использовал if != null, но это не сработало, поэтому мне нужно проверить, не пуст ли он.

спасибо

Ответ 1

В событии RowdataBound вы можете получить значение ячейки из gridview, используя следующий код:

[ 1]//получение имени пользователя rfom определенной строки

string servicename = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "Name"));

В событии RowUpdating вы можете проверить, является ли ячейка пустой или нет, используя следующий код:

string servicename = grdvw_showdetails.DataKeys[row.RowIndex][1].ToString();

Выше кода использует Datakey в событии обновления строки. если вы не хотите использовать datakey, код для проверки конкретной ячейки пуст или нет

 TextBox txtaname = (TextBox)row.FindControl("txt_updname");

 if(txtaname.text != null)

EDIT:

Этот ответ превосходный. Однако я хотел бы добавить немного комментария. При проверке данных ячеек строки в событии RowDatabound свойство DataItem ItemArray не доступно напрямую. Поэтому, когда мы делаем что-то подобное, это бессмысленно: string val = e.Row.Cells[2].Text.ToString(); и выдает ошибку.

То, где приходит первая строка этого ответа. [ 1]

Следующий экран показывает дерево/иерархию свойств Row, когда вы выполняете часы в режиме отладки.

enter image description here