使用自定义排序类型和分组 - 动态ColModel Jqgrid

时间:2014-04-03 09:59:05

标签: jquery jqgrid

生成Jqgrid动态列,最初在AJAX调用中,我将获得 ColNames,带有初始sortname的ColModel ,Grid应在其上进行排序,其他设置在触发Grid之前。

在网格中,我已经配置了服务器端分页,我将获得排序记录到网格并显示它。

如果用户点击任何列,则按照Click事件(列asc,desc)对数据进行排序并返回所需数据。

到目前为止一切顺利。现在我正在尝试将分组概念引入现有代码,并且不确定如何解决我的排序行为?

第一次发送按分组字段排序的数据并且看起来很好并且正在遵循分组维基规则

It is important to note that if you want the grouping to be correct, then the data should come from server to the grid sorted by that field

我怎么能这样呢?我在SO看了几个帖子 jqGrid sorting a column while grouping consider grouping header

JQGrid Custom Sorting

所有人都谈到将自定义排序类型添加到ColModel。但我的Colmodel是MVC控制器的动态,如上所述。

在网格级别是否有任何事件像gridComplete我可以覆盖除Colmodel sorttype之外的排序?

或者你可以推荐一个更好的appraoch吗?

由于

=================== 的更新

例如我的分组基于国家(静态和配置)

假设用户是按另一列Latitude排序我的服务器端返回按纬度排序的数据,而在Jqgrid中则按国家/地区分组。到目前为止很好。

但数据的分组方式类似于按纬度分组,然后按国家/地区分组。而我希望仅按国家/地区进行排序

示例:

Country     City      Latitude

USA          MP        1.11
         WS        1.11

USA          SE        1.09
         WS        1.09

But as i am grouping by country am expecting like below 

USA          MP        1.11
         WS        1.11
         SE        1.09
         WS        1.09

所以在排序之前我应该​​做些什么来使这个o / p正确?

PS:数据是假的解释我的问题。但希望你有我的问题

1 个答案:

答案 0 :(得分:0)

如果我正确理解了您需要的问题,您只需先按国家/地区(分组列)对服务器上的数据进行排序,然后按纬度排序为第二个。您只需在服务器端使用类似ORDER BY Country, Latitude的内容(或ORDER BY Country ASC, Latitude DESC,具体取决于排序顺序)。