未执行排序时显示jqGrid排序图标

时间:2010-09-27 20:46:19

标签: jquery sorting jqgrid

在我们的网格中,我们没有定义sortNamesortOrder,但第一列显示了排序图标(按ASC顺序)。如何防止出现排序图标?


更新:以下代码

  $("#list").jqGrid({
    url:'NoData.json',
    datatype: 'json',
    mtype: 'GET',
    colNames:['Product', 'Type','Expiry', 'Put Call', 'Strike', 'Account','Long','Short', 'Open Qty', 'LTD', 'Operations'],
    colModel :[
      {name:'product', index:'product', width:75},
      {name:'type', index:'type', width:50, align:'right'},
      {name:'expiry', index:'expiry', width:60, align:'right'},
      {name:'putCall', index:'putCall', width:65},
      {name:'strike', index:'strike', sorttype: 'float', width:70},
      {name:'account', index:'account', width:70},
      {name:'long', index:'long', sorttype: 'int', width:55, align:'right'},
      {name:'short', index:'short', sorttype: 'int', width:55, align:'right'},
      {name: 'openQty', index:'openQty', width:80, align:'center', sortable:false, search:false, formatter:closeoutFormatter},
      {name:'LTD', index:'LTD', width:65, align:'right'},
      {index:'operations', width:105, title:false, search:false, align: 'center', formatter:opsFormatter, sortable:false}
    ],
    onPaging: function (b) {
        var nextPg = $("#list").getGridParam("page");

        if (dirty == 'false') {
       currPg = nextPg;
           return;
        }


    $( "#dialog-confirm" ).dialog({
        resizable: false,
        height:160,
        modal: true,
        buttons: {
            "Stay on current page": function() {
                $( this ).dialog( "close" );
            },
            "Change page": function() {
                $( this ).dialog( "close" );
                reloadGrid($("#list"), null, nextPg, 'false');
            }
        }
    });

        $("#list").setGridParam({page:currPg}); //Workaround - jqGrid still increments the page num even when we return stop so we have to reset it (and track the current page num)    
    return 'stop';
    },
    pager: '#pager',
    scrollOffset:0, //No scrollbar
    rowNum:15,
    width:'100%',
    viewrecords: true ,
    caption: 'Positions',
    height: '360',
    hidegrid: false //Don't show the expand/collapse button on the top right
  }).navGrid("#pager",{edit:false,add:false,del:false,
    beforeRefresh: function(){
        reloadGrid($("#list"), null, 1, 'true');  //Required so that we go to the server and not reload local data
    }
  });

3 个答案:

答案 0 :(得分:2)

我修改了您已经知道的代码示例,并评论了sortnamesortorder。现在我们有一个网格,其中显示没有显示排序图标。看看here。您也可以使用sortname:id作为另一个选项,并获得相同的结果。因此,如果网格的行为是另一个:发布代码示例。

更新:发布示例后,一切都很清楚。我在我喜欢的所有网格中使用rownumbers:true。如果您将选项rownumbers:true 添加到网格,则会在第一列的标题上看不到排序图标。如果您不需要行号列,可以使用

$("#list").jqGrid("hideCol", "rn");

隐藏它。因此,您将拥有与没有rownumbers:true完全相同的网格,但也不会在第一列的标题上排序图标。

更新the answer中介绍了另一种解决方法和错误修复。

答案 1 :(得分:0)

为该列的模型配置添加sortable:false。

答案 2 :(得分:0)

虽然这是一个较老的问题。但有一个技巧可以解决上述问题。只需添加第一列"hidden:true"即可。如果没有sortOrder和sortname,则在jqgrid属性中设置此工作。如果已将sortOrder设置为sortName,则将其设置为隐藏的任何列名称。因此默认情况下不会显示排序箭头。 希望这对jqgrid有用。感谢。