【问题标题】:jqgrid onSortCol return 'stop' not able to stop client side sortingjqgrid onSortCol 返回“停止”无法停止客户端排序
【发布时间】:2015-02-04 03:50:11
【问题描述】:

jqgrid 的 onSortCol 事件有问题。

我正在尝试禁用客户端排序并在服务器端进行处理。 由于限制,我必须使用本地数据类型而不是 json。

我可以看到正在进行的服务器端调用以及获取并显示的结果 在 ui 屏幕中。但是我无法阻止客户端排序的发生。

return 'stop' 无法阻止 jqgrid 对新返回的数据进行排序。

有人可以告诉我如何阻止这里发生客户端排序吗?

这是 onSortCol 函数内的代码:

// 使用异步调用填充数据

     onSortCol: function (index, columnIndex, sortOrder) {            

        that.store.find("oldcontact",{page:page,pagesize:pageSize,columnName:index,sortOrder:sortOrder}).then(function(data){


                          grid.jqGrid('clearGridData');


                              grid.jqGrid('setGridParam', {data: data});

                              grid.trigger('reloadGrid');
                              return 'stop';


                      });

                 } ,

【问题讨论】:

    标签: jquery sorting jqgrid


    【解决方案1】:

    找到解决我问题的方法..

    只需定义 sorttype 以返回一个常量值将禁用客户端排序。

    这对我有用:

         colModel:[
                    {name:'id',index:'id', key: true, width:70,sorttype:"int"},
                    {name:'firstName',index:'firstName', width:90,sorttype: function () {
                                                                      return 1; // any constant value
                                                                  }},
                    {name:'lastName',index:'lastName', width:100,sorttype: function () {
                                                                     return 1; // any constant value
                                                                 }}
    
                ]
    

    我继续处理 onSortCol 中的自定义排序,如上面我的问题中所述......

    【讨论】:

      【解决方案2】:

      可以通过在声明列时指定“sortable:false”来禁用客户端排序。参考下面的sn-p。

      //your grid.
      jQuery('#myJqGrid');
      //Definition of a colModel
      {name:'ColumnName', index:'name', sortable:false, align:'left', edittype:'text'}
      

      【讨论】:

      • 指定“sortable:false”的问题是在单击列时,网格不会触发任何事件,因此不会触发 onSolCol 事件。我在上面的代码中处理排序服务器端并希望触发事件。一旦 jqgrid 从上面的服务器获取结果,代码中的问题就会尝试对其进行排序(这违背了对服务器端进行排序的目的)。我只是希望 jqgrid 不要这样做。我在一些帖子中看到 return 'stop' 会这样做,但在我上面的代码中它不起作用。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-14
      相关资源
      最近更新 更多