大家好,我在排序GridView时遇到了问题。假设我的gridview有10行数据和2列,Name和Age。分页设置为每页5行数据。当我点击名称时,它被正确排序。但是,当我点击下一页时,它会再次变成“未分类”。请帮助!下面附加了事件处理程序。ASP.Net即使在进入下一页后对Gridview进行排序
protected void SearchResultGridView_Sorting(object sender, GridViewSortEventArgs e)
{
if (ViewState["SearchDS"] == null)
Response.Redirect("PESearh.aspx");
DataTable SearchDT = ((DataSet)ViewState["SearchDS"]).Tables[0];
string sortExpression = e.SortExpression;
if (ViewState["SearchSort"] != null && ViewState["SearchSort"].ToString().Length > 0)
{
if (!ViewState["SearchSort"].ToString().Contains(sortExpression))
GridViewSortDirection = SortDirection.Descending;
}
else
{
GridViewSortDirection = SortDirection.Descending;
}
if (GridViewSortDirection == SortDirection.Ascending)
{
GridViewSortDirection = SortDirection.Descending;
sortExpression += " DESC";
SearchDT.DefaultView.Sort = sortExpression;
}
else
{
GridViewSortDirection = SortDirection.Ascending;
sortExpression += " ASC";
SearchDT.DefaultView.Sort = sortExpression;
}
ViewState["SearchSort"] = sortExpression;
this.SearchResultGridView.DataSource = SearchDT;
this.SearchResultGridView.DataBind();
}
和我pagechanging
protected void SearchResultGridView_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
SearchResultGridView.DataSource = ViewState["SearchDS"];
SearchResultGridView.PageIndex = e.NewPageIndex;
SearchResultGridView.DataBind();
}
我需要帮助,使以前的分类还梳理了下一个页面。请帮忙谢谢!
注意:我不想在绑定前对数据进行排序,因为我希望用户先看到数据,然后决定绑定什么。
你是什么意思的“我希望用户先看到数据,然后决定要绑定什么”?我不明白为什么这会阻止你像'SearchResultGridView_Sorting'中那样设置'DefaultView.Sort'。 – Zhihao 2012-08-08 03:17:59
这段代码是从我的团队中的其他开发人员复制而来的,我不知道他在做什么。无论如何,我的意思是,我不想在绑定数据时将其排序在SQL代码中。我想通过单击网格标题进行手动排序 – Theone 2012-08-08 03:21:12
我遇到的麻烦是这行:string sortExpression = e.SortExpression; e不同 – Theone 2012-08-08 03:22:12