我有一个带有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);
}
}
但标签没有显示任何内容。 。那么如何让标签正确显示内容呢? 对你的帮助表示感谢 。 .Thanx
答案 0 :(得分:0)
尝试
<asp:Label ID="LabelBody" runat="server" text='<%#Eval("Body") %>' />
编辑:
如果以上不起作用,请尝试:
<asp:Label ID="LabelBody" runat="server" text="<% #Eval("Body").ToString() %>" />
答案 1 :(得分: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");
}
}
请确保在返回的数据表中有一个以列命名的列 并删除&lt;%#EVAL%&gt;来自标签的text属性的标记,将其留空或不在aspx中指定属性