2013-08-02 25 views
0

为什么我的asp:Literal控件在asp:ListView ItemTemplate中不起作用? ASP.NET 4.5 Web窗体为什么我的asp:Literal控件在asp:ListView ItemTemplate中不起作用

ASPX代码:

<asp:ListView ID="lv" runat="server" ItemType="WebApplication1.ItemClass"> 
       <ItemTemplate> 
        <asp:Literal runat="server" Text='<%#: Item.HtmlText %>' /> 
       </ItemTemplate> 
      </asp:ListView> 

ASPX代码背后:

this.lv.DataSource = new ItemClass[] { 
        new ItemClass() { HtmlText = "<p>Hello 01<br/>blablabla</p>"}, 
        new ItemClass() { HtmlText = "<p>Hello 02<br/>blablabla</p>"}, 
        new ItemClass() { HtmlText = "<p>Hello 03<br/>blablabla</p>"} 
}; 

       this.lv.DataBind(); 

我的对象类:

:我的网页上

public class ItemClass 
{ 
    public string HtmlText { get; set; } 
} 

结果

<p>Hello 01<br/>blablabla</p> <p>Hello 02<br/>blablabla</p> <p>Hello 03<br/>blablabla</p> 

我可以看到html元素标签。我不知道为什么。

感谢

回答

1

当您使用冒号(:)在你的代码块,它会自动HTML编码输出。 (见我的回答here获取更多信息)

要解决这个问题,只需从你的代码降结肠,所以它看起来像这个:

<asp:ListView ID="lv" runat="server" ItemType="WebApplication1.ItemClass"> 
    <ItemTemplate> 
     <asp:Literal runat="server" Text='<%# Item.HtmlText %>' /> 
    </ItemTemplate> 
</asp:ListView> 
+0

它的工作原理,谢谢! – Nico

相关问题