jqGrid不工作排序过程不起作用

时间:2016-04-14 23:37:53

标签: javascript jquery jqgrid

我正在使用本地数据。 Json值在lsm对象中。

尝试按等级和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"
             });

1 个答案:

答案 0 :(得分:0)

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

{
    height: 250,
    height: 300
}

同样,你不应该两次指定相同的选项。

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

下一个问题。如果您定义了自定义格式化程序(checkValueSKU_pricingcheckValueFuture_pricingcheckValuePromotionscheckValueOffersformatLinkMarkDelete),那么您也应定义无格式化程序(请参阅unformat的说明回调here)。

关于您使用的选项的简短附加说明:在使用loadonce: true的情况下,选项datatype: "local"毫无意义(将被忽略)。 align: 'left'的属性colModel是默认属性,可以跳过。也可以删除属性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)。