0

这是我的GV。

<asp:GridView ID="Grid1" runat="server" AutoGenerateColumns="false"
            AllowPaging="True" OnPageIndexChanging="Grid1_PageIndexChanging">
            <Columns>
                <asp:BoundField DataField="One" HeaderText="One" />
                <asp:BoundField DataField="Two" HeaderText="Two" />
                <asp:BoundField DataField="Three" HeaderText="Three" />
            </Columns>
</asp:GridView>

我正在使用存储过程填充 GV。

table = PublicClass.Sql_GetTable("usp_GetReportGridView", "NCIU");
Grid1.DataSource = table;
Grid1.DataBind();

如何使用列标题进行排序?

4

1 回答 1

2

首先,您需要启用 AllowSorting 属性为真。启用后,网格会在每列的标题中呈现 LinkBut​​ton 控件。单击按钮时,将引发网格的 SortCommand 事件。由您在代码中处理此事件。因为 DataGrid 总是按照它在数据源中出现的顺序显示数据,典型的逻辑是先对数据源进行排序,然后将数据重新绑定到网格中。看下面的代码:

//AllowSorting="True"
//OnSorting="GridView2_Sorting"
//SortExpression="name"

protected void GridView2_Sorting(object sender, GridViewSortEventArgs e)
{
  //to check whether to display in ascending order or descending order
  if (e.SortExpression.Trim() == this.SortField)
    this.SortDirection = (this.SortDirection == "D" ? "A" : "D");
  else
    this.SortDirection = "A";
  this.SortField = e.SortExpression;
  TempTable();
}
于 2012-11-16T03:59:22.993 回答