asp.net ListView按列排序

时间:2012-06-14 12:29:25

标签: c# asp.net listview sorting

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

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

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

2 个答案:

答案 0 :(得分:3)

如果您正在使用数据源控件,则可以在ListView控件中实现排序,而无需编写单行代码 - 它全部由ListView及其数据源控件自动处理。当然,在更高级的场景中,我们可能需要手动对数据进行排序或以编程方式进行排序。

在以下示例中,ListView将按ProductName和UnitPrice排序。只需在ListView的LayoutTemplate中添加两个LinkBut​​tons,其中包含适当的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>

如果用户连续两次点击“按价格排序”链接,则第一次按升序(从最便宜到最贵)对产品进行排序,但第二次排序顺序将反转。

答案 1 :(得分:0)

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