试图访问ListView中的标签

时间:2013-07-09 10:36:53

标签: c# asp.net listview

我有一个带有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

2 个答案:

答案 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中指定属性