【发布时间】:2014-03-02 04:58:25
【问题描述】:
所以我使用 Datatable.net、Asp.net MVC 控制器来提供 Json 数据。
我正在尝试做一些与这些帖子类似的事情:
从 Javascript Ajax 调用到服务器,我有以下参数:
> int iSortingCols Number of columns to sort on > int iSortCol_(int) Column being sorted on > (you will need to decode this number for your database) > string sSortDir_(int) Direction to be sorted - "desc" or "asc".
这是我的数据集:
var db = new GER_MAPV_Context();
var allTags = db.TrimTables;
filteredTags = db.TrimTables.AsEnumerable();
IEnumerable<TrimTable> filteredTags;
//排序的依赖函数
Func<TrimTable, string> getColumnName = (
c => getCurrentSortColumn(1) == 1 ? c.TAG :
sortColumnIndex == 2 ? c.DESCRIPTION :
sortColumnIndex == 3 ? c.SET_POINT :
sortColumnIndex == 4 ? c.PRIORITY :
sortColumnIndex == 5 ? c.LIMIT_TYPE :
sortColumnIndex == 6 ? c.ALARM_TYPE :
sortColumnIndex == 7 ? c.AUTOMATED_SYSTEM :
sortColumnIndex == 8 ? c.COL_POL :
sortColumnIndex == 9 ? c.PROPERTY :
sortColumnIndex == 10 ? c.EQUIP_TYPE:
sortColumnIndex == 11 ? c.P_ID :
sortColumnIndex == 12 ? c.AREA :
sortColumnIndex == 13 ? c.COMPLEX :
sortColumnIndex == 14 ? c.UNIT : //PI Unit Format Long-text
sortColumnIndex == 15 ? c.UNIT_ : //Loop Number Format
sortColumnIndex == 16 ? c.LOOP_TYPE : //Loop Type i.e. PI, FIT, PSV
sortColumnIndex == 17 ? c.LOOP_ : //Loop Number
sortColumnIndex == 18 ? c.LOOP_EXT :
c.UNIT
);
然后我需要对这些列中的每一列进行相应的排序,最多 4 种。
filteredTags.OrderBy(getColumnName).ThenByDescending(getColumnName);
//could have 1 - 4 orderby.thenby arrangements
诀窍是我需要输入“sortColumnIndex”
(这是一个数字,分别是 iSortCol_1 或 iSortCol_2 的 JSON 参数)
进入 getColumnName 函数,使其返回正确的列名。
我在这里绞尽脑汁。
问:那么执行此操作的基本步骤是什么?
我在这里尝试构建的 LINQ 表达式的基本要点是什么?
【问题讨论】:
-
Ah Yah 本教程完全回答了我的问题。 farm-fresh-code.blogspot.com/2012/02/…
标签: c# linq ienumerable jquery-datatables