2013-08-02 34 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

相關問題