Reputation: 558
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
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