[翻譯]對使用綁定列的DataGrid進行排序的另一種方法

作者:azamsharp
翻譯:sharpcn

介紹:
在這個小的代碼片段中,我將演示如何對使用綁定列的【DataGrid】進行排序的另一種方法。記住,對【DataGrid】的【Items】進行排序有很多中方法,這裏介紹的只是其中的一種。
添加綁定列:
首先,利用【屬性生成器】爲你的 【DataGrid】添加一些綁定列。因爲這是一篇中等層次的文章,所以你應當知道如何進行這些操作。在你添加綁定列之後,給【DataGrid】一個數據源並填充一些數據。
DataGrid排序的兩種方法:
好了,到現在可以開始了。【DataGrid】應當被填充一些數據。在【DataGrid】的屬性窗口中設置 AllowSorting = “true“。好,這樣就可以對DataGrid進行排序了。現在要做的就是爲【DataGrid】添加排序的實際代碼。
DataGrid排序代碼:
不論在何時,只要頁眉被點擊,SortCommand事件 就會被觸發。所以,我們將以下代碼放在SortCommand事件處理器當中。
private void Sort_DataGrid(object sender, System.Web.UI.WebControls.DataGridSortCommandEventAgrs e)
{
    // 不要在這個命令中放置 存儲過程
    SqlCommand myCommand = new SqlCommand(“SELECT * FROM Categories“, myConnection);
    myCommand.CommandType = CommandType.Text;
    SqlDataAdapter myAdapter = new SqlDataAdapter(myCommand);
    DataSet ds = new DataSet();
    myAdapter.Fill(ds, “Categories“);
    DataView dv = new DataView(ds.Tables[“Categories“]);
    if((numberDiv%2) == 0)
        dv.Sort = e.SortExpression + “ “ + “ASC“;
    else
        dv.Sort = e.SortExpression + “ “ + “DESC“;
    numberDiv++;
    myDataGrid.DataSource = dv;
    myDataGrid.DataBind();
}

說明:
在以上代碼中,numberDiv 是一個用來保存鼠標點擊頁眉事件的產生的 public static Int32型奇數變量。這個示例的核心是一個擁有 【SortExpression】屬性的【DataView】對象,她描述了被點擊列的名稱。

最後,只需要指派一個 【DataSource】到【DataView】並且綁定到頁面上的【DataGrid】既可。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章