大家好,我在排序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