台灣最大程式設計社群網站
線上人數
1454
 
會員總數:243311
討論主題:188091
歡迎您免費加入會員
討論區列表 >> ASP.NET >> Gridview中的Sorting排序功能疑問
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
Gridview中的Sorting排序功能疑問
價值 : 100 QP  點閱數:144 回應數:2

樓主

larry
門外漢
0 5
112 10
發送站內信

各位前輩好,小弟最近參考了一個網站來練習gridview的排序功能,
但是實作完之後發現,排序的方向只有辦法從小到大,
不知道詳細的問題是出在哪邊,希望各位高手能夠指點小弟錯誤的地方
先謝謝各位高手前輩了!

這是我參考練習的網站
https://dotblogs.com.tw/atowngit/archive/2010/09/21/17832.aspx

以下是程式碼
private void GVGetData(SortDirection pSortDirection, string pSortExpression)
{
try
{
DataTable oDT = this.GetData();
string sSort = string.Empty;
if (pSortDirection == SortDirection.Ascending)
{
sSort = pSortExpression;
}
else
{
sSort = pSortExpression + "DESC";
}
DataView oDV = oDT.DefaultView;
oDV.Sort = sSort;
this.GridView3.DataSource = oDV;
this.GridView3.DataBind();
}
catch (Exception ex)
{
this.Label7.Text = ex.Message;
}
}
protected void GridView_Sorting(object sender, GridViewSortEventArgs e)
{
string NowSE = ViewState["NowSE"] != null ? ViewState["NowSE"].ToString() : string.Empty;
SortDirection NowSD = ViewState["NowSD"] != null ? (SortDirection)ViewState["NowSD"] : SortDirection.Ascending;
if (string.IsNullOrEmpty(NowSE))
{
NowSE = e.SortExpression;
NowSD = SortDirection.Ascending;
}
if (NowSE != e.SortExpression)
{
NowSE = e.SortExpression;
NowSD = SortDirection.Ascending;
}
else
{
if (NowSD == SortDirection.Ascending)
{
NowSD = SortDirection.Descending;
}
else
{
NowSD = SortDirection.Ascending;
}
}
ViewState["NowSD"] = NowSD;
ViewState["NowSE"] = NowSE;
this.GVGetData(NowSD, NowSE);

}


搜尋相關Tags的文章: [ Gridview ] , [ Sorting ] ,
本篇文章發表於2018-08-06 14:36
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
最有價值解答

topcat
捐贈 VP 給 topcat 檢舉此回應
您的一小段邏輯顛倒了
我把您寫的加上註解,就可以看出來


^.^a
本篇文章回覆於2018-08-07 09:22
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

larry
檢舉此回應
原來如此!!! 謝謝喵大
另外sSort = pSortExpression + "DESC";
這裡的DESC要加一個空格才不會導致讀不到程式
這是我後來發現的,給之後有看到的人參考
本篇文章回覆於2018-08-08 08:54
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.