jqGrid不工作排序进程不工作

jqGrid Not working sort process not working

本文关键字:工作 进程 排序 jqGrid      更新时间:2023-09-26

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

试着按等级和店铺ID排序。两个字段都不起作用。找不到为什么它不起作用。

我按照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"
             });

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

{
    height: 250,
    height: 300
}

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

代码中的另一个重要错误是:您一次又一次地指定了具有相同name属性的多个列(查看具有name: 'rank'的两个列和具有name: 'storeId'的两个栏)。

下一个问题。如果您定义了自定义格式化程序(checkValueSKU_pricingcheckValueFuture_pricingcheckValuePromotionscheckValueOffersformatLinkMarkDelete),您也应该定义非格式化程序(请参阅此处对unformat回调的描述)。

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

最后一句话:如果您报告了一个问题,您应该发布更多完整的代码(请参阅您使用的许多自定义格式化程序)和一些测试数据(lsm数组中的至少两项,您将其用作data参数的值)。您应该始终编写您使用的jqGrid版本以及jqGrid的哪个分支(免费jqGrid、商业Guriddo jqGrid JS或版本<=4.7的旧jqGrid)。我建议您使用当前版本的免费jqGrid(当前版本4.13.2)。