2014-02-28 47 views
0

https://datatables.net/usage/server-sidejQuery的數據表

在上述網頁中,有您需要接收,使服務器端的數據表的工作參數。 我有一個輔助類

public class TableParameter 
{ 
    public string sEcho { get; set; } 
    public int iDisplayStart { get; set; } 
    public int iDisplayLength { get; set; } 
    public int iSortingCols { get; set; } 
} 

但爲了我需要接受

string sSortDir_(int) 

如何做呢列進行排序?我知道(int)表示需要排序的列ID,但我無法在控制器中捕獲它。

回答

1

數據表將向您的控制器發佈一個或多個sSortDir_x參數,具體取決於表中同時排序了多少個列。

表格排序的特定列在iSortCol_參數(又是一個或多個)中發送。

public class TableParameter 
{ 
    public string sEcho { get; set; } 
    public int iDisplayStart { get; set; } 
    public int iDisplayLength { get; set; } 
    public int iSortingCols { get; set; } 
    public int iSortCol_0 { get; set; } // the first (and usually only) column to be sorted by 
    public string sSortDir_0 { get; set; } // the direction of the first column sort (asc/desc) 
    public int iSortCol_1 { get; set; } // the second column to be sorted by 
    public string sSortDir_1 { get; set; } // the direction of the second column sort 
    // etc 
} 
1

對於動作receiveing列名,即用於一個列排序:

public ActionResult SomeMethod(FormCollection coll) 
{ 
    var sortingColumnNumber = Convert.ToInt32(coll["iSortCol_0"]); 
    var sortingColumnName = coll[string.Format("mDataProp_{0}", sortingColumnNumber)]; 
    var propertyInfo = typeof(SomeObject).GetProperty(sortingColumnName); 

    //..get List<SomeObject> sortedObjects 
    sortedObjects = sortedObjects.OrderBy(x => propertyInfo.GetValue(x, null)).ToList(); 
    //... 
}