在 GridView 中动态显示 LiteralControl
我创建了一个 html 并将其设置为文字控件。 然后我尝试将这个literalControl 插入到转发器的ItemTemplate 中。
但是当我这样做时,它被视为“System.Web.UI.LiteralControl”文本,而不是里面的html。
这是代码:
<asp:Repeater>
//SomeColumns
<ItemTemplate>
<%# GetPriorityBox(DataBinder.Eval(Container.DataItem, "StartDate"),
DataBinder.Eval(Container.DataItem, "EndDate") %>
</ItemTemplate>
</asp:Repeater>
从浏览器中可以看到如下:
SomeColumn | SomeColumn | System.Web.UI.LiteralControl
I create an html and set it to a literalControl.
Then I'm trying to insert this literalControl in a repeater's ItemTemplate.
But when I do this, it is seen as "System.Web.UI.LiteralControl" text, not the html inside.
Here's the code:
<asp:Repeater>
//SomeColumns
<ItemTemplate>
<%# GetPriorityBox(DataBinder.Eval(Container.DataItem, "StartDate"),
DataBinder.Eval(Container.DataItem, "EndDate") %>
</ItemTemplate>
</asp:Repeater>
It is seen from the browser like:
SomeColumn | SomeColumn | System.Web.UI.LiteralControl
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
只需将标记直接添加到 ItemTemplate 中即可。更改您的
GetPriorityBox
方法以返回 LiteralControl 的 Text 属性。Just add the markup directly to the ItemTemplate. Change your
GetPriorityBox
method to return the Text property of the LiteralControl.将 .Text 添加到该语句的末尾...它不会使用
<%# %> 表示法注入控件。它只会注入标记,因此您只需注入文本。如果您希望注入控件,请点击 ItemDataBound 事件,然后以编程方式添加控件。
HTH。
Add a .Text to the end of that statement... it won't inject a control using
<%# %>
notation. It will only inject markup, so you have to inject the text only. If you want the control injected, tap into ItemDataBound event, and programmably add the control.HTH.