为什么我的gridview列没有单击切换排序方向?

时间:2009-04-05 18:39:34

标签: asp.net gridview gridview-sorting

为什么我的gridview列没有单击切换排序方向?

似乎只是在我第一次点击它时对行进行排序,任何其他点击只会刷新页面,而不会对排序方向进行任何更改。

btw我有一个OnSorting方法,我调用它来更新sql查询以进行排序。

我的代码:

<asp:GridView ID="gvReport" runat="server" AutoGenerateColumns="False" 
    AllowSorting="True"
    AllowPaging="True" 
    OnSorting="Report_OnSorting">



 public void Report_OnSorting(object sender, GridViewSortEventArgs e)
    {

}

1 个答案:

答案 0 :(得分:0)

我想你会在对this similar question的许多回复中找到答案。

我相信如果您使用最简单的版本,ASP.Net将为您处理整个排序事项。

来自SqlDataSource example的此代码只设置AllowSorting =“true”并在BoundColumns中提供SortExpressions。它没有OnSorting事件的连接,也没有其他代码。我相信它可以为您管理ASC和DESC之间的切换。在这种情况下,使用可怕的SqlDataSource,我相信你必须使用DataSet而不是DataReader。

<%@ Page Language="C#" %>
<html>
<head id="Head1" runat="server">
  <title>Sorting Data Using GridView</title>
</head>
<body>
  <form id="form1" runat="server">
   <asp:GridView ID="GridView1" AllowSorting="true" runat="server" DataSourceID="SqlDataSource1"
      AutoGenerateColumns="False">
      <Columns>
        <asp:BoundField HeaderText="ID" DataField="au_id" SortExpression="au_id" />
        <asp:BoundField HeaderText="Last Name" DataField="au_lname" SortExpression="au_lname" />
        <asp:BoundField HeaderText="First Name" DataField="au_fname" SortExpression="au_fname" />
        <asp:BoundField HeaderText="Phone" DataField="phone" SortExpression="phone" />
        <asp:BoundField HeaderText="Address" DataField="address" SortExpression="address" />
        <asp:BoundField HeaderText="City" DataField="city" SortExpression="city" />
        <asp:BoundField HeaderText="State" DataField="state" SortExpression="state" />
        <asp:BoundField HeaderText="Zip Code" DataField="zip" SortExpression="zip" />
        <asp:CheckBoxField HeaderText="Contract" SortExpression="contract" DataField="contract" />
      </Columns>
    </asp:GridView>
   <asp:SqlDataSource ID="SqlDataSource1" runat="server"
      SelectCommand="SELECT [au_id], [au_lname], [au_fname], [phone], [address], [city], [state], [zip], [contract] FROM [authors]"
      ConnectionString="<%$ ConnectionStrings:Pubs %>" />
  </form>
</body>
</html>