How to get value of a cell in row data bound event? and how to check if a cell is empty?

Alexander picture Alexander · Apr 24, 2012 · Viewed 41.2k times · Source

I'm using sqldatasource and a GridView. I want to get the value of a cell from the GridView in the RowDataBound event?, Because I can't use e.RowIndex.

How to check in the updatng event if a cell is empty? I used if != null, but it didn't worked so I need to check if it's empty.

thanks

Answer

giri-webdev picture giri-webdev · Apr 24, 2012

In the RowdataBound Event, you can get the value of a cell from gridview using the following Code:

[1]//getting username rfom particular row

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

In the RowUpdating event, you can check if cell is empty or not, by using following code:

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

Above code uses Datakey in the row updating event. if you don't want to use the datakey, the code to check specific cell is empty or not is

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

 if(txtaname.text != null)

EDIT:

This answer is excellent. However I would like to add a bit of a comment. When checking row cells data within RowDatabound event, the row's DataItem's ItemArray property is not directly accessible. So when we do something like this, it's pointless : string val = e.Row.Cells[2].Text.ToString(); and throws an error.

That's where the first line of this answer comes in.[1]

Following screen shows the tree/hierarchy of the Row's underlying properties when you do a watch at debug mode.

enter image description here