Problem with empty cell value in GridView

B

Bill Gower

I have an cell which contains a field member which is filled with
String.Empty. When I retrieve the value in the cell with
Cells[0].Text.ToString() and try to compare it to String.Empty, I can't
because it contains "&nbsp". I really don't want to compare the value to
that so how can I retrieve an empty cell so that it is String.Empty.

Bill
 
M

Mark Rae [MVP]

I have an cell which contains a field member which is filled with
String.Empty. When I retrieve the value in the cell with
Cells[0].Text.ToString() and try to compare it to String.Empty, I can't
because it contains "&nbsp".

Yes - that's how empty GridView cells are rendered in HTML. A GridView is
nothing more than an HTML table by the time ASP.NET has rendered it to the
client browser - the rows are <tr> elements and the individual cells are
<td> elements. Some browsers have problems displaying <td> elements which
are completely empty, specifically with regard to borders etc, so ASP.NET
inserts &nbsp; to prevent this.
I really don't want to compare the value to that

??? Why on earth not?

if (Cells[0].Text.ToString() == "&nbsp;")
{
// do something
}

What could be simpler...?
 
B

Bill Gower

Ok that's fine. I won't make it more difficult then it is. :) But now I do
have a real problem. I am retrieving the 3rd row which happens to have no
value in the cell and it is actually containing the value from the first row
same cell. When the gridview is displayed it is an empty cell but when I
retrieve it by

GridView.Rows[index].Cells[0].Text.ToString().

It has the value of the cell from the first row.

What is happening here?

Bill

Mark Rae said:
I have an cell which contains a field member which is filled with
String.Empty. When I retrieve the value in the cell with
Cells[0].Text.ToString() and try to compare it to String.Empty, I can't
because it contains "&nbsp".

Yes - that's how empty GridView cells are rendered in HTML. A GridView is
nothing more than an HTML table by the time ASP.NET has rendered it to the
client browser - the rows are <tr> elements and the individual cells are
<td> elements. Some browsers have problems displaying <td> elements which
are completely empty, specifically with regard to borders etc, so ASP.NET
inserts &nbsp; to prevent this.
I really don't want to compare the value to that

??? Why on earth not?

if (Cells[0].Text.ToString() == "&nbsp;")
{
// do something
}

What could be simpler...?
 
M

Mark Rae [MVP]

Ok that's fine. I won't make it more difficult then it is. :) But now I
do have a real problem. I am retrieving the 3rd row which happens to have
no value in the cell and it is actually containing the value from the
first row same cell. When the gridview is displayed it is an empty cell
but when I retrieve it by

GridView.Rows[index].Cells[0].Text.ToString().

It has the value of the cell from the first row.

What is happening here?

Difficult to tell without seeing your code but, if you do a View Source on
the page in question, you will see the HTML table rendered from the GridView
webcontrol - does that shed any light on it...?
 
B

Bill Gower

I checked the source and rows 1 to 3 have an entry in the cell and rows 4
to 5 have &nbsp in the cell. When I step through the code and check the
value at the cell from row 4, it has the value from the cell in row 1.

Bill


Mark Rae said:
Ok that's fine. I won't make it more difficult then it is. :) But now I
do have a real problem. I am retrieving the 3rd row which happens to
have no value in the cell and it is actually containing the value from
the first row same cell. When the gridview is displayed it is an empty
cell but when I retrieve it by

GridView.Rows[index].Cells[0].Text.ToString().

It has the value of the cell from the first row.

What is happening here?

Difficult to tell without seeing your code but, if you do a View Source on
the page in question, you will see the HTML table rendered from the
GridView webcontrol - does that shed any light on it...?
 
M

Mark Rae [MVP]

I checked the source and rows 1 to 3 have an entry in the cell and rows 4
to 5 have &nbsp in the cell. When I step through the code and check the
value at the cell from row 4, it has the value from the cell in row 1.

Please show the code you're using...
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,055
Latest member
SlimSparkKetoACVReview

Latest Threads

Top