【问题标题】:jqGrid grouping - deactivating client side sorting on page navigationjqGrid 分组 - 在页面导航上停用客户端排序
【发布时间】:2012-06-11 09:36:22
【问题描述】:

我正在使用带有 loadOnce:true 的网格,以便只对服务器进行一次查询。 数据在服务器端排序(多列排序)。在客户端禁用排序。

在激活分组功能之前,导航工作正常。

通过激活分组功能,第一页就OK了。但是当我使用导航按钮转到下一页时,数据会根据分组列在客户端进行排序(即使使用 groupDataSorted:true)。

rowTotal: 10000,
gridview: true,
scroll: false, 
loadonce: true,

pgbuttons: true,
pginput: true,
rowNum: 100,
rowList: '',
datatype: 'json',
mtype: 'GET',

grouping: true,
groupingView : { 
      groupField : ['prodNo'],
      groupSummary: [true],
      groupColumnShow: [false],           
      groupText: ['({1})'],
      showSummaryOnHide: true,
      groupDataSorted : true,
      groupCollapse: false
    },
jsonReader: {root: 'list', userdata : 'list'},
url:'...'

我的情况有点特殊,因为我在服务器端根据“名称”和“日期”列对数据进行排序,但根据另一个“prodNo”列对行进行分组。 但是我不明白为什么要在页面导航上进行排序。

有没有办法在页面导航上禁用这种客户端排序?

提前致谢

【问题讨论】:

  • jqGrid 版本:3.8.2

标签: jquery jqgrid


【解决方案1】:

如果您使用loadonce: true 并且用户单击“下一页”按钮,本地 数据将由grindexes 处理(它是列的index 属性的值您用于在groupField 中进行分组)。因此,解决您的问题的最简单方法是在 prodNo 列中实现自定义排序。

您可以先尝试在“prodNo”列的定义中添加自定义排序

sorttype: function () {
    return 1; // any constant value
}

函数sorttype将在本地数据排序期间被调用。如果它返回与上面示例相同的结果,那么所有数据将被解释为相同,我希望不会进行额外的排序。

如果由于某种原因该方法不起作用,您可以实现另一个排序

sorttype: function (cellValus, rowData) {
    ...
}

例如,如果您希望本地数据根据其他列“名称”和“日期”进行排序,您可以从“prodNo”列中的sorttype 返回类似的值

sorttype: function (cellValus, rowData) {
    // probably the data need be converted in the sortable form yyyy-mm-dd
    return rowData.name + '_' + rowData.data;
}

【讨论】:

  • 按照您的建议添加“sorttype:function(){return 1;}”足以解决我的问题。谢谢!也感谢您的解释。
  • 嘿 @Oleg sorttype: function() { return 1; } 解决了导航排序问题。但是单击我的日期列的标题什么也没做。我尝试使用sorttype:function (cellValue, rowData) { return cellValue}.cellValue 是一个与网格列格式相同的日期。这样做会进行排序,但顺序很奇怪,而且还会破坏导航排序。
  • @Jaikrat:抱歉,如果不知道您具体做什么,我无法帮助您。您使用哪个版本的 jqGrid 和 fork?您有哪种格式的输入数据?列的其他属性是如何定义的等等。最好在描述问题的地方发布单独的问题。正确使用定义为函数的sorttype 会有所帮助,但错误使用会产生新问题。因此,必须了解问题才能解决它。
  • 或也尝试使用return $.datepicker.parseDate( 'm/d/yy', cellValue);
  • @Jaikrat:我可以重复一遍,我仍然不知道你在做什么。如果您希望其他人帮助您,那么您应该发布单独的问题,在其中更详细地解释您的工作。我在之前的评论中发布了一些问题,但你没有回答任何人。我不确定 sorttype 在您的情况下定义为函数是否正确。必须了解您在网格中加载了哪些数据,colModel 是如何定义的,以及数据将如何在 jqGrid 中本地保存。只有在此之后,人们才应该了解为什么标准排序会不正确以及如何解决问题。
猜你喜欢
  • 2011-03-12
  • 1970-01-01
  • 2011-01-09
  • 1970-01-01
  • 1970-01-01
  • 2012-02-20
  • 2015-02-04
  • 2014-11-18
  • 1970-01-01
相关资源
最近更新 更多