GridView的功能很强大,可以实现很多的功能,下面我讲下GridView自动排序的实现方法。
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
/**//// <summary>
/// GridView排序
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
if (GridViewSortExpression.Equals(e.SortExpression))
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
GridViewSortExpression = e.SortExpression;
if (GridViewSortDirection.Equals("ASC"))
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
GridViewSortDirection = "DESC";
this.GridView1.DataSource = SortDataTable(数据源, false);
}
else if (GridViewSortDirection.Equals("DESC"))
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
GridViewSortDirection = "ASC";
this.GridView1.DataSource = SortDataTable(数据源, true);
}
else
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
GridViewSortDirection = "ASC";
this.GridView1.DataSource = SortDataTable(数据源, true);
}
}
else
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
GridViewSortDirection = "ASC";
GridViewSortExpression = e.SortExpression;
this.GridView1.DataSource = SortDataTable(数据源, true);
}
this.GridView1.DataBind();
![](/Images/OutliningIndicators/InBlock.gif)
}
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
/**//// <summary>
/// 排序,并保存排序结果
/// </summary>
/// <param name="dataTable"></param>
/// <param name="isPageIndexChanging"></param>
/// <returns></returns>
protected DataView SortDataTable(DataTable dataTable, bool isPageIndexChanging)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
![](/Images/OutliningIndicators/InBlock.gif)
if (dataTable != null)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
![](/Images/OutliningIndicators/InBlock.gif)
DataView dataView = new DataView(dataTable);
![](/Images/OutliningIndicators/InBlock.gif)
if (GridViewSortExpression != string.Empty)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
![](/Images/OutliningIndicators/InBlock.gif)
if (isPageIndexChanging)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
![](/Images/OutliningIndicators/InBlock.gif)
dataView.Sort = string.Format("{0} {1}", GridViewSortExpression, "ASC");
![](/Images/OutliningIndicators/InBlock.gif)
}
![](/Images/OutliningIndicators/InBlock.gif)
else
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
![](/Images/OutliningIndicators/InBlock.gif)
dataView.Sort = string.Format("{0} {1}", GridViewSortExpression, "DESC");
![](/Images/OutliningIndicators/InBlock.gif)
}
//if (Session["FileListTable"] != null)
// Session["FileListTable"] = GetDataTable(dataView);
![](/Images/OutliningIndicators/InBlock.gif)
}
![](/Images/OutliningIndicators/InBlock.gif)
return dataView;
![](/Images/OutliningIndicators/InBlock.gif)
}
![](/Images/OutliningIndicators/InBlock.gif)
else
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
![](/Images/OutliningIndicators/InBlock.gif)
return new DataView();
![](/Images/OutliningIndicators/InBlock.gif)
}
![](/Images/OutliningIndicators/InBlock.gif)
}