【发布时间】:2011-03-10 10:15:47
【问题描述】:
我发现在使用 asp.net 控件时很难制作正确的 css 文件,因为我不知道不同控件的 html 输出最终会是什么。
例如,如果我想使用asp.net控件添加div标签,要知道我可以使用哪种控件并不容易。
是否有任何文档显示每个 asp.net 控件,该控件呈现的 html 将是什么?我知道某些控件可能会由于其配置方式而改变其输出,但大多数控件至少会遵循此处的模式。
最好的当然是网络上的服务,您可以在其中放入 asp.net 控件定义并获取呈现的 html。
目前我必须将一个控件放入我的网络表单中,运行它并在浏览器中检查源代码,如果它不是正确的 html 标签,请尝试另一个控件并重复。这很快就会变得乏味。
【问题讨论】:
-
我通常会使用反射器来挖掘控件或使用 cssfriendly 适配器,但这样的东西会很方便
-
渲染的 html 甚至会因浏览器而异,例如,当 ASP.Net 认为客户端使用“较低”浏览器(BrowserCaps)时,Panel 将是 rendered as Table 而不是分区。
-
如果您想要
div,请使用div。最近没有做太多的 WebForms,但我总是试图让我的 ASP.NET 控件使用表单元素和PlaceHolder控件来显示和隐藏内容。我总是更喜欢Repeater,而不是任何其他面向数据的控件,它可以让您最大限度地控制渲染的标记。每次你使用GridView,一只小猫不仅会死,还会被折磨到缓慢而痛苦的死亡。 -
正如 roryf 所说,如果你想要
<div>,请使用<div>。你为什么要把事情复杂化?您应该更改 css 以适应您的代码,而不是相反。 -
@roryf 和@another - 情况是我根据很多因素动态创建页面,所以我从代码生成控件(因此也是 html)。目前我正在使用 HtmlGenericControl 创建 div 标签,并使用 HtmlGenericControls Controls 属性在 div 标签内添加内容。这是首选的方式,还是有更好/更简单的方式来完成这个?