2

I'm trying get values from a GridView using the following code:

foreach (GridViewRow row in this.dgvEstudios.Rows)
{
    var xy = row.Cells[1].Text;
}

Always get a an empty string ("") as the value returned from .Text, why does this happen? I have set EnableViewState to true

3 Answers 3

4

If there are controls in each cell you will need to get the value like this:

Label lblEmailAddress = GridView.Rows[e.CommandArgument].FindControl("lblEmailAddress");
string Email = lblEmailAddress.Text;

in that case it it the control in the cell that has the value not the cell iteslf.

Sign up to request clarification or add additional context in comments.

Comments

2

The cell might have controls inside it (e.g. LiteralControl or an HyperLink). This is what you should be looking for.

row.Cells[1].Controls collection, you should look for.

1 Comment

this works! but specifing the index from ControlsCollection like this: row.Cells[1].Controls[1]; this is a normal behavior?
1

it could depend on many things.. Where is this code fired in relation to when the GridView is populated (Databind() called)?

Without any context, its hard to say what else it could be.

1 Comment

Im using RowDataBound for play with data inside GridView, by the way I will test the first answer, but what about ViewState?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.