GridView Sort
HOW TO: Using sorting / paging on GridView w/o a DataSourceControl DataSource
If you set AllowPaging=”true” or AllowSorting=”true” on a GridView control without using a DataSourceControl DataSource (i.e. SqlDataSource, ObjectDataSource), you will run into the following errors:
When changing the page on the GridView control:
The GridView ‘GridViewID’ fired event PageIndexChanging which wasn’t handled.
When clicking a column name to sort the column on the GridView control:
The GridView ‘GridViewID’ fired event Sorting which wasn’t handled.
As a result of not setting the DataSourceID property of the GridView to a DataSourceControl DataSource, you have to add event handlers for sorting and paging.
<asp:GridView ID=”gridView” OnPageIndexChanging=”gridView_PageIndexChanging” OnSorting=”gridView_Sorting” runat=”server” />
private string ConvertSortDirectionToSql(SortDirection sortDirection)
{
string newSortDirection = String.Empty;
switch (sortDirection)
{
case SortDirection.Ascending:
newSortDirection = “ASC”;
break;
case SortDirection.Descending:
newSortDirection = “DESC”;
break;
}
return newSortDirection;
}
protected void gridView_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
gridView.PageIndex = e.NewPageIndex;
gridView.DataBind();
}
protected void gridView_Sorting(object sender, GridViewSortEventArgs e)
{
DataTable dataTable = gridView.DataSource as DataTable;
if (dataTable != null)
{
DataView dataView = new DataView(dataTable);
dataView.Sort = e.SortExpression + ” “ + ConvertSortDirectionToSql(e.SortDirection);
gridView.DataSource = dataView;
gridView.DataBind();
}
}
转载请标明出处:萝卜根
原文地址请标明:原文地址
http://stackoverflow.com/questions/250037/gridview-sorting-sortdirection-always-ascending
Gridview Sorting with Up and Down Icons, Paging:
http://www.codeproject.com/KB/aspnet/Gridview_Sorting_Paging.aspx
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.sort.aspx