Asp.net 呈现空值的数据绑定控件

Asp.net 呈现空值的数据绑定控件,asp.net,controls,databound,databound-controls,Asp.net,Controls,Databound,Databound Controls,尽管我从ASP.NET2.0开始就非常喜欢数据绑定控件,并且在学习这些控件后一直在使用它们,但我似乎偶然发现了这些控件似乎存在的一个未被注意(或者说不关心)的问题 我使用的是ASP.Net 3.5,我注意到的问题是,当在数据控件(如Datalist、Gridview等)内使用数据绑定控件(如标签、超链接)时,即使一列返回的值为NULL,它仍然呈现为空标记 例如:我有一个数据列表,其中我有一个标签,其值可以是或不是NULL。现在,当值不是NULL时没有问题,问题是当值是NULL时。理想情况下,不应

尽管我从ASP.NET2.0开始就非常喜欢数据绑定控件,并且在学习这些控件后一直在使用它们,但我似乎偶然发现了这些控件似乎存在的一个未被注意(或者说不关心)的问题

我使用的是ASP.Net 3.5,我注意到的问题是,当在数据控件(如Datalist、Gridview等)内使用数据绑定控件(如标签、超链接)时,即使一列返回的值为
NULL
,它仍然呈现为空标记

例如:我有一个
数据列表
,其中我有一个
标签
,其值可以是或不是
NULL
。现在,当值不是
NULL
时没有问题,问题是当值是
NULL
时。理想情况下,不应为没有任何值的控件呈现任何HTML,但在这种情况下,仍会呈现相应的
NULL
值控件的HTML(
,对于标签)

现在,正如我前面所说的,大多数人都不关心这一点,因为这不是一个大问题,但是如果你考虑到这个控件可以被封装在父控件的层次结构中,然后重复很多次,这会显著地增加HTML内容(因为HTML内容的ID是基于父控件的)。没有添加任何文本来保持文本/HTML的比例,从而成为搜索引擎回避为页面编制完整索引的原因

我在别的地方找不到与此事有关的任何东西,所以我想把它带到这里来。这真的是数据绑定控件的问题还是我在这里遗漏了什么


感谢您的帮助。

是的,这很有意义,因为控件不会自动隐藏自己,即使没有内容,您也必须通过Visible=“False”显式隐藏它们。这与数据绑定控件和非数据绑定控件一致。在没有内容的情况下排除标记可能会给应用程序带来混乱,尤其是当页面使用JavaScript时


HTH.

首先,感谢您的回复。好吧,这是一个缺乏知识的问题-我没有使用ASP.Net 4.0,刚刚听说过动态控件,这些动态控件能帮助解决这个问题吗?另一件事,当我们把
Visible=“false”没有呈现HTML,但服务器仍然知道它,因此,在服务器端,如果这里没有呈现HTML,应该不会有任何问题。关于客户端,如果我们使用
Visible=“false”隐藏控件,可能出现的问题也会出现