jqGrid仅在4.4.3版本中按升序排序

时间:2017-10-30 13:25:44

标签: jqgrid

这是我的代码。当我点击 asc desc 时,它总是只按升序对数据进行排序。你可以告诉我,我需要添加任何东西吗?

if (typeof jQuery("#plist")[0] != UNDEF && jQuery("#plist")[0].grid) {
    jQuery("#plist").GridUnload();
} 
jQuery("#plist").jqGrid({
    url: URL,
    datatype: 'json',
    mtype: 'POST',
    colModel: colModelData,
    pager: '#pagerTrade',
    rowNum: 80,
    gridview: true,
    rowList: [80, 160, 240],
    viewrecords: true,
    height: "550",
    width: "auto",
    viewsortcols: [true, 'vertical', true],
    multiselect: true,
    onSortCol: function(index, columnIndex, sortOrder) {
        //alert("index:"+index+", columnIndex:" +columnIndex + ", sortOrder:" +sortOrder);
        var colSort = {};
        colSort.index = getColumnIndex("plist", columnIndex);
        colSort.direction = sortOrder;
        var colSortList = [ colSort ];
        var pageNo = getPageNo("plist");
        var rowCount = getRowCount("plist");
        //Function CAll()
        return 'stop';
    },
    gridComplete: function() {

    }
});

服务器端代码:

if(!CommonUtil.isNullOrEmpty(request.getParameter("sidx"))){
                sortByColumn = request.getParameter("sidx");
            }
            if(!CommonUtil.isNullOrEmpty(request.getParameter("sord"))){
                sortByOrder = request.getParameter("sord");
            }

2 个答案:

答案 0 :(得分:0)

您使用datatype: 'json' 而不使用 loadonce: true选项。这意味着服务器(参见url : URL)负责数据的排序,分页和过滤/搜索。如果用户单击排序图标,则jqGrid仅使用sidxsord参数向服务器发送一个请求,该参数对应于单击的列。我猜您的服务器代码忽略 sord参数,服务器只返回按升序排序的数据页面。您需要修复服务器代码或更改代码以使用loadonce: true选项。

答案 1 :(得分:0)

您的onSortCol事件总是停止,这会导致网格不将所需数据发送到您的服务器,并且始终不执行排序(不会执行填充)。

onSortCol: function(index, columnIndex, sortOrder) {
        //alert("index:"+index+", columnIndex:" +columnIndex + ", sortOrder:" +sortOrder);
        var colSort = {};
        colSort.index = getColumnIndex("plist", columnIndex);
        colSort.direction = sortOrder;
        var colSortList = [ colSort ];
        var pageNo = getPageNo("plist");
        var rowCount = getRowCount("plist");
        //Function CAll()
        return 'stop';   <===== HERE STOP RETURNED
    },

要预先删除返回停止,您将在服务器上获取参数