asp.net 列表视图按列排序

本文关键字:排序 视图 net 列表 asp | 更新日期: 2023-09-27 18:37:15

我有一个绑定到数据源的列表视图。如何启用按列排序?

因此,单击列标题后按升序排序时,再次单击它按降序排序。

向导中是否有任何可以设置的内容,或者所有这些都需要以编程方式完成?

asp.net 列表视图按列排序

如果使用数据源控件,则可以在 ListView 控件中实现排序,而无需编写任何代码 - 所有排序都由 ListView 及其数据源控件自动处理。当然,在更高级的方案中,我们可能需要手动或以编程方式对数据进行排序。

在下面的示例中,ListView 将按"产品名称"和"单价"排序。 只需在列表视图的布局模板中添加两个具有相应 CommandName 和 CommandArgument 属性值的链接按钮。

    <asp:ListView ID="ProductList" runat="server" DataSourceID="ProductDataSource">
   <LayoutTemplate>
      <h3>Product Listing</h3>
       <asp:LinkButton runat="server" ID="SortByName" CommandName="Sort"
                     CommandArgument="ProductName">Sort by Name</asp:LinkButton>
      | <asp:LinkButton runat="server" ID="SortByPrice" CommandName="Sort"
                     CommandArgument="UnitPrice">Sort by Price</asp:LinkButton>
      <blockquote>
         <asp:PlaceHolder runat="server" ID="itemPlaceholder"></asp:PlaceHolder>
      </blockquote>
   </LayoutTemplate>
   ...
</asp:ListView>

如果用户连续两次单击"按价格排序"链接,则第一次产品将按升序(从最便宜到最昂贵)排序,但第二次排序顺序将颠倒。

这取决于您使用的数据源。如果数据源允许排序,则可以按照此处描述的方式进行设置 http://msdn.microsoft.com/en-us/library/sa88ktts.aspx。否则,您必须以编程方式处理排序。通常,这甚至比自动方法更容易。