2012-10-11 65 views
0

因爲我是.NET新手,我需要下面的代碼的解釋。任何人都可以給我解釋嗎?需要gridview排序的解釋

protected void GridView1_Sort(object sender, GridViewSortEventArgs e) 
{ 
    GridView grid = sender as GridView; 

    DataTable dt = Session["List"] as DataTable; 
    string month = System.DateTime.Now.AddMonths(-3).ToString("MMMM"); 
    if (dt != null) 
    { 
     dt.DefaultView.Sort = e.SortExpression + " " +  GetSortDirection(e.SortExpression); 
     grid.DataSource = Session["List"]; 
     grid.DataBind(); 
    } 
} 
+0

......究竟哪一部分?你不明白它是什麼? –

+2

這不是一個「解釋我的代碼」網站;) –

回答

2

雖然這通常不是一個「解釋我的代碼」網站...

電網Sort方法:排序基於指定排序表達式和方向GridView控件。

protected void GridView1_Sort(object sender, GridViewSortEventArgs e) 
{ 

將發件人投射到GridView。發件人始終是提出事件的控件。

GridView grid = sender as GridView; 

session獲取GridView的數據源,因爲它是對前一個請求存儲在那裏。請注意,所有對象都放置在每個頁面生命週期的末尾,因此您需要將其保存在某處(Session,ViewState)或從您的rdbms再次加載(推薦)。

DataTable dt = Session["List"] as DataTable; 

下面的行是多餘的,並且可以被刪除

string month = System.DateTime.Now.AddMonths(-3).ToString("MMMM"); 

我假定舊方向存儲在視圖狀態/會話並且該GetSortDirection方法反轉排列方向(DESC,如果它是先前在該列上排序的ASC等)。

string month = System.DateTime.Now.AddMonths(-3).ToString("MMMM"); 
if (dt != null) 
{ 
    dt.DefaultView.Sort = e.SortExpression + " " +  GetSortDirection(e.SortExpression); // i assume that the old direction 

將它再次存儲在Session中,並將數據綁定到GridView

 grid.DataSource = Session["List"]; 
     grid.DataBind(); 
    } 
} 
+0

我知道這不是一個解釋我的代碼網站。由於即時通訊新.net。我不知道它在做什麼。非常感謝你的解釋。特別是這一個dt.DefaultView.Sort = e.SortExpression +「」+ GetSortDirection(e.SortExpression); – Sam

+0

現在我很好..謝謝 – Sam