这是我的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();
如何使用列标题进行排序?
答案 0 :(得分:2)
首先,您需要启用AllowSorting属性为true。启用后,网格会在每个列的标题中呈现LinkButton控件。单击该按钮时,将抛出网格的SortCommand事件。您可以在代码中处理此事件。因为DataGrid始终以与数据源中出现的顺序相同的顺序显示数据,所以典型的逻辑对数据源进行排序,然后将数据重新绑定到grid.look代码如下:
//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();
}