我有一个绑定到数据源的列表视图。如何启用按列排序?
因此,当按升序排序后单击列标题时,再次单击它按降序排序。
向导中是否有任何可以设置的内容,或者都需要以编程方式完成?
如果您使用的是数据源控件,则可以在 ListView 控件中实现排序,而无需编写一行代码——这一切都由 ListView 及其数据源控件自动处理。当然,在更高级的场景中,我们可能需要手动或以编程方式对数据进行排序。
在以下示例中,ListView 将按 ProductName 和 UnitPrice 排序。只需在 ListView 的 LayoutTemplate 中添加两个具有适当 CommandName 和 CommandArgument 属性值的 LinkButton。
<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中描述的方式进行设置。否则,您必须以编程方式处理自己的排序。通常这比自动方法更容易。