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 回答