ignoreCase排序不适用于列

时间:2014-08-08 10:45:08

标签: javascript jquery jqgrid

在Jqgrid我的专栏如下,

{name : 'name',editable:true,width:120,sorttype:'string'},

但它提供了区分大小写的排序,如下所示。

- product Sales Agent
- email Queue
- default Queue
- Trouble Ticket
- Billing & Payment

我尝试使用ignoreCase:也是true但它不起作用。 我需要通过忽略大小来完成排序,如下所示,

- Trouble Ticket 
- product Sales Agent 
- email Queue 
- default Queue 
- Billing & Payment

知道如何做到这一点吗?

            colNames:['questionId','Name','Answer','Show','Edit','Option'],
            colModel : [
                {name : 'questionId',sorttype:'int',align:'left',editable:true, hidden:true},
                {name : 'name',editable:true,width:120,sorttype:'text',ignoreCase:true,soratble:true},                  {name : 'answer',align:'left',width : 400,sorttype:'string',editable:true},
                {name : 'enable',align:'center',width : 60,sorttype:'string',editable:true, formatter : formatEnable},
                {name : 'edit',editable:false, formatter:addEditButton,align:'center',width:50},
                {name : 'feedbackOptions.optionId',editable:false, align:'center', hidden:true},

            ],
            jsonReader : {root: "rows",
                  page: "page",
                  total: "total",
                  records: "records",
                  repeatitems: false
            },      
            multiselect : true,
            height: '170px',
            paging : true,
            emptyrecords : "<spring:message code='label.norecords'/>",
            viewrecords : true,
            rowNum : 10,
            rowList : [10,20,30],
            pager : "#pager",
            loadonce : true,                
            footerrow : false,
            userDataOnFooter : true,
            altRows : true,
            loadonce:true,
            loadComplete: function (data) {
                $('#buttonDiv').show();
              }
            }); 
            jQuery("#list").jqGrid("navGrid","#pager",{del:false,add:false,edit:false, search:false, refresh:false});
            },
            error:function(xhr,ajaxoptions,thrownError){

            }
    }); 
}

4 个答案:

答案 0 :(得分:0)

尝试更改sorttype:'string'中的sorttype:'text'

答案 1 :(得分:0)

IgnoreCase: true添加到jqgrid的选项而不是列。

答案 2 :(得分:0)

如果您使用的是3.8版本的jqGrid。尝试在grid.base.js

上进行如下更改

将_usecase字段设为false并尝试。

from:function(source){   ....  _usecase =假, }

同样的问题已经解决了以后的版本,因此无需在那里进行更改。

答案 3 :(得分:0)

我知道这是一个老问题,但是我在工作时偶然掉到了这里。如果你在这样的专栏中尝试怎么办?

您的专栏现在(或问题写在哪里):

{name : 'name',editable:true,width:120,sorttype:'text',ignoreCase:true,sortable:true}

使用ignoreCase函数的列使用一些JS技巧:

{name:'name', editable:true, width:120, sortable:true, sorttype: function(cell,obj){
    return cell.toLowerCase()}
};

注意cell包含单元格的String值,因此当您想要在jqGrid中对元素进行排序时,必须使用它。

希望有所帮助