Anchit
Anchit

Reputation: 558

Databound controls with null value being rendered

Although I'm a huge fan of Databound controls since ASP.Net 2.0 and have been using them a lot since learning them, I seem to have stumbled upon an unnoticed(or rather not cared about) issue that these controls seem to have.

I'm using ASP.Net 3.5 and the issue that I noticed is that when using Databound controls(such as Labels, HyperLinks) inside a Data-Control(such as Datalist, Gridview etc.), even if the value returned for one column is NULL, it is still rendered albeit as an empty tag.

For eg: I have a Datalist in which I have a Label whose value may or may not be NULL. Now there's no problem when the value is not NULL, the problem is when the value is NULL. Ideally, no HTML should be rendered for a controls that don't have any value, but in this case, the HTML(<span></span> in case of the Label) of the corresponding NULL valued control is still being rendered.

Now, as I said earlier that most people won't care about this as it isn't much of an issue, but if you consider the fact that this control may be enclosed in a hierarchy of parent controls, and then repeated many a times, this could significantly increase the HTML content(since the ID of your HTML content is based on the parent controls) without any Text added to maintain the Text/HTML ratio, thereby becoming a cause for the Search Engines to shy away from indexing your pages fully.

I couldn't find anything related to this matter anywhere else so I thought to bring it up here. Is this really an issue with databound controls or am I missing something here?

Help is always appreciated.

Upvotes: 0

Views: 441

Answers (1)

Brian Mains
Brian Mains

Reputation: 50728

Yes, that makes sense because control's don't auto hide themselves, you'd have to explicitly hide them through Visible="False", even with no content. This is consistent with the databound controls and non-databound controls alike. Excluding the markup when no content is there could potentially be chaotic to an application, especially if the page used JavaScript.

HTH.

Upvotes: 1

Related Questions