这个问题指出了Literal vs Label而这个问题指出了Panel VS。PlaceHolder但就在今天,我正在与我的同事讨论使用PlacHolder 与 Literal来添加在运行时生成的 HTML 标记。这两个控件都不会产生任何额外的标记,但我们正在寻找合适的控件来动态添加生成的标记。这个问题的答案建议使用两者来添加生成的标记,所以我想知道我们应该使用哪种控制/方法来添加生成的标记,仅此而已。
问问题
12074 次
2 回答
14
既不渲染自己的任何标记(这可能是一件非常好的事情)。但是,aPlaceholder
可以包含子控件,而 aLiteral
不能。
相比之下,aPlaceholder
可以包含其他控件,但没有Text
属性。
我想知道我们应该使用哪种控制/方法来添加生成的标记,仅此而已。
如果“生成”是指最终结果是一个字符串,我会使用Literal
. 如果要生成控件树,则将这些控件附加到Placeholder
.
或者,如果您想完全省略服务器控件的声明:
<h2>Hello World</h2>
<p>The following is generated markup.</p>
<%= base.GetGeneratedMarkup() %>
我相信 aLiteral
仍然在后台生成,但它允许您将生成的内容与页面/控件的标记部分混合(类似于 Razor)。
于 2013-03-10T15:47:50.250 回答
6
PlaceHolder vs Literal for adding HTML
主要的不同是 Literal 控件具有Text
也保存在 Viewstate 上的属性(和 Mode),PlaceHolder
完全是空的。
所以你可以使用Literal 控件直接添加一些字符串 html 代码,并且可以使用PlaceHolder 添加一些其他控件但不添加任何直接 html 代码。
于 2013-03-10T16:06:31.043 回答