基于Listviewitem中的Control更改listview的顺序

时间:2014-06-23 08:54:19

标签: c# asp.net html5 controls listviewitem

我尝试使用ListView创建博客页面。我正在创建一个回复函数,当邮件包含parentmessageid时,它会向listview添加其他css样式。

这很有效。现在我需要更改消息的顺序,以便将回复消息放在parentmessage下。您将在下面找到我的实现:

数据源填充Listview的功能:

protected void LoadMessages(int userid)
{
    Bericht berichten = new Bericht();
    if (berichten.LaadBerichten(userid).Tables.Count > 0)
    {
        ListViewMessages.DataSource = berichten.LaadBerichten(userid);
        ListViewMessages.DataBind();
    }
}

在LabelMessageID包含值的项目上添加css样式的函数:

protected void ListItemMessages_Load(object sender, EventArgs e)
{
    HtmlGenericControl li = (HtmlGenericControl)sender;
    ListViewItem container = (ListViewItem)li.NamingContainer;
    Label LabelParentMessageID = (Label)container.FindControl("LabelParentMessageID");

    if (LabelParentMessageID.Text != string.Empty)
    {
        li.Attributes.Add("class", "reply");
    }
}

ASP.NET ListView来源:

<asp:ListView ID="ListViewMessages" runat="server">
    <ItemTemplate>
        <li id="ListItemMessages" runat="server" onload="ListItemMessages_Load">
            <img src="<%# Eval("[imagelocation]")%>" alt="image" />
            <div class="top-pointer"></div>
            <div class="pointer"></div>
            <!--Hidden Controls-->
            <asp:Label ID="LabelMessageID" runat="server" Text='<%# Eval("[messageid]")%>' Visible="false"></asp:Label>
            <asp:Label ID="LabelParentMessageID" runat="server" Text='<%# Eval("[parentmessageid]")%>' Visible="false"/>
        </li>
    </ItemTemplate>
</asp:ListView>

有人可以帮我改变物品的顺序吗?因为我不知道如何做到这一点。

2 个答案:

答案 0 :(得分:0)

尝试类似ds.Tables[0].DefaultView.Sort = "SortField DESC";

的内容

答案 1 :(得分:0)

使用SQL存储过程解决。