如何才能使这个过程反过来,也就是默认第一次排序以从大到小的顺序进行呢?不幸的是GridView并没有提供类似DefaultSortDirection之类的东西让我们来设置,所以必须通过代码:
<
asp:GridView
runat
="server"
id
="GridView1"
AllowSorting
="True"
OnSorting
="GridView1_Sorting"
>
</ asp:GridView >
</ asp:GridView >
protected
void
GridView1_Sorting(
object
sender, GridViewSortEventArgs e)
{
// 获取排序的字段名
string field = e.SortExpression.Split( ' ' )[ 0 ];
// 如果是第一次对此字段排序
if (ViewState[ " PreviousSortField " ] as string != field)
{
// 改成从大到小的顺序
e.SortExpression = e.SortExpression + " DESC " ;
// 记录下此字段的名称(下次它就不是第一次了)
ViewState[ " PreviousSortField " ] = field;
}
}
{
// 获取排序的字段名
string field = e.SortExpression.Split( ' ' )[ 0 ];
// 如果是第一次对此字段排序
if (ViewState[ " PreviousSortField " ] as string != field)
{
// 改成从大到小的顺序
e.SortExpression = e.SortExpression + " DESC " ;
// 记录下此字段的名称(下次它就不是第一次了)
ViewState[ " PreviousSortField " ] = field;
}
}