2016-04-14 46 views
-2

我正在使用本地数据。 Json值在lsm对象中。 Json值在lsm对象中。jqGrid不工作排序过程不起作用

尝试在rank和storeId中进行排序。两个字段都不起作用。 无法找到为什么它不工作。

我按照给定的jqgrid网站以下。需要对列升序和降序进行排序。

需要帮助来解决问题。

$("#jqGrid-listofStoresMarked").jqGrid({ 
       datatype: "local", 
       data: lsm, 
       height: 250, 
       colModel: [ 
         { 
          label: 'Rank #', 
          name: 'rank', 
          width: 3, 
          align: 'left', 
          sorttype:'integer' 
         }, 
         { 
          label: 'Rank Update', 
          name: 'rank', 
          width: 5, 
          formatter: updateRank, 
          align: 'left' 
         }, 
        { 
          label: 'Store Id', 
          name: 'storeId', 
          width: 3, 
          index: 'storeId', 

          sorttype: function (cell, rowData) { 
           return (parseInt(rowData.storeId)); 
          } 
        }, 
        { 
          label: 'SKU & Pricing', 
          name: 'SKU_pricing', 
          width: 4, 
          formatter: checkValueSKU_pricing, 
          align: 'left' 
        }, 
        { 
          label: 'Future Pricing', 
          name: 'Future_pricing', 
          width: 4, 
         // sorttype:'integer', 
          formatter: checkValueFuture_pricing, 
          align: 'left' 
        }, 
        { 
         label: 'Promotions', 
         name: 'Promotions', 
         width: 4, 
         formatter: checkValuePromotions, 
         align: 'left' 
        }, 
        { 
         label: 'Offers', 
         name: 'Offers', 
         width: 3, 
         formatter: checkValueOffers, 
         align: 'left' 
        }, 
        { 
          label: 'Full Update Mark Delete', 
          name: 'storeId', 
          width: 6, 
          formatter: formatLinkMarkDelete, 
          align: 'left' 
        } 
       ], 

       viewrecords: true, // show the current page, data rang and total records on the toolbar 
       height: 300, 
       rowNum: 8, 
       loadonce: true, 
       sortname: 'storeId', 
       sortorder: "desc", 
       pager: "#jqGridPager-listofStoresMarked" 
      }); 
+0

你已经问过这个问题,但是你没有提供额外的细节http://stackoverflow.com/questions/36635756/jqgrid-sorting-not-working-properly – Goose

+0

我已经删除该帖子。 –

+0

您能提供一些**测试数据**('lsm')至少两个项目,可以用来重现问题吗?您使用哪种版本的jqGrid,以及从哪个版本的jqGrid([免费jqGrid](https://github.com/free-jqgrid/jqGrid),商业版[Guriddo jqGrid JS](http://guriddo.net/?page_id) = 103334)或旧版本的jqGrid版本<= 4.7)?此外,您在代码中使用一些自定义格式化器(几乎在所有列中)。你能否包含格式化程序的代码?它允许重现您描述的问题。 – Oleg

回答

0

首先,你应该修复你的代码中的错误。对象

{ 
    height: 250, 
    height: 300 
} 

以同样的方式,你永远不应该指定相同选项两次。

代码中的另一个重要错误:您使用相同的name属性更多地指定多个列(查看两列name: 'rank'和两列有name: 'storeId')。

下一个问题。如果您定义了自定义格式化程序(checkValueSKU_pricing,checkValueFuture_pricing,checkValuePromotions,checkValueOffers,),则应该定义非格式化程序(请参阅unformat回调here的说明)。

关于您使用的选项的简短补充说明:选项loadonce: true在使用datatype: "local"的情况下没有意义(它将被忽略)。 colModel的属性align: 'left'是默认值,可以跳过。属性index也可以删除(请参阅index: 'storeId')。定义为功能的sorttype(请参阅name: 'storeId')与sorttype: "integer"的功能相同。预定义的sorttype属性应该是首选。

的最后一句话:如果你报道你应该张贴更完整的代码有问题(看到许多自定义格式,您可以用)和一些测试数据(从lsm阵列至少两个项目,你作为data值使用参数)。您应该总是写哪个版本的jqGrid您使用和从哪个分叉jqGrid(free jqGrid,商业Guriddo jqGrid JS或旧的jqGrid版本< = 4.7)。我建议你使用当前版本的免费jqGrid(目前版本4.13.2)。