0

私は DataPager を使用して ListView コントロールを持っています。データベースから ListView に結果を表示しようとしています。データベースには、ajaxhtmlextender からのコンテンツを格納するフィールドがあります。このようなデータベースで ListView をバインドしています。

protected void ListEvents()
    {
        conn = new SqlConnection(connSting);
        cmdListEvent = new SqlCommand("SELECT * FROM LatestEvents",conn);
        table = new DataTable();

        conn.Open();

        adpter = new SqlDataAdapter(cmdListEvent);
        adpter.Fill(table);
        ListEvent.DataSource = table;
        ListEvent.DataBind();

        conn.Close();

    }

および .aspx ファイル

<asp:ListView ID="ListEvent" runat="server" 
           OnItemDataBound="ListEvent_ItemDataBound" >

<LayoutTemplate>
<asp:PlaceHolder runat="server" ID="itemPlaceholder"></asp:PlaceHolder>
</LayoutTemplate>

<ItemTemplate>
<div class="contmainhead">
<h1 id="evhead"><asp:Label ID="LabelTittle" runat="server"><%#Eval("Tittle") %></asp:Label></h1>
</div>
<div class="contmain">
<asp:Label ID="LabelBody" runat="server"> <%#Eval("Body") %></asp:Label>
</div>
</ItemTemplate>

</asp:ListView>

意図した結果が得られますが、問題はラベルです

<asp:Label ID="LabelBody" runat="server"> <%#Eval("Body") %></asp:Label>

すべての書式設定されたテキストと画像を HTML マークアップとして表示します。ラベルを完全に機能させるには、この関数を使用する必要があります。

Server.HtmlDecode();

私はこのようにしてみました

protected void ListEvent_ItemDataBound(object sender, ListViewItemEventArgs e)
    {
        if (e.Item.ItemType == ListViewItemType.DataItem)
        {
            Label LabelBody = (Label)e.Item.FindControl("LabelBody");
            LabelBody.Text = Server.HtmlDecode(LabelBody.Text);
        }
    }

しかし、ラベルには何も表示されません。. では、ラベルにコンテンツを正しく表示するにはどうすればよいですか? どうぞよろしくお願いいたします。.ありがとう

4

2 に答える 2

0

試す

<asp:Label ID="LabelBody" runat="server" text='<%#Eval("Body") %>' />

編集 :

上記がうまくいかない場合は、次を試してください:

<asp:Label ID="LabelBody" runat="server" text="<% #Eval("Body").ToString() %>" />
于 2013-07-09T10:59:12.957 に答える
0
protected void ListEvent_ItemDataBound(object sender, ListViewItemEventArgs e)
    {
        if (e.Item.ItemType == ListViewItemType.DataItem)
        {
           ListViewDataItem dataItem = (ListViewDataItem) e.Item;
           Label LabelBody = (Label)e.Item.FindControl("LabelBody");
           LabelBody.Text = (string) DataBinder.Eval(dataItem.DataItem, "Body");
        }
    }

返されたデータテーブルに名前付きの列があることを確認し、ラベルのテキスト属性から <%# EVAL %> タグを削除するか、空のままにするか、aspx で属性を指定しないでください。

于 2013-07-09T15:12:17.923 に答える