Jqgrid按星期几对列进行排序

Jqgrid按星期几对列进行排序,jqgrid,Jqgrid,我有一个名为“Day”的专栏,在我的jqgrid中有日期名称。我不知道如何使它按星期几的顺序而不是按字母顺序排序 有什么想法吗?有没有办法覆盖默认的排序行为 谢谢 首先,您需要在数据源中有一个计算字段,以数字形式表示一周中的某一天。然后,通过设置该列的“索引”值,更新colModel,使当前“日”字段使用该计算出的数字: 参见选项“索引” 我将数据类型用作JSON。您可以在我的代码中看到“dayOfWeek”列。 我想我必须在我的selecteditoption中使用一个数字作为editopt

我有一个名为“Day”的专栏,在我的jqgrid中有日期名称。我不知道如何使它按星期几的顺序而不是按字母顺序排序

有什么想法吗?有没有办法覆盖默认的排序行为


谢谢

首先,您需要在数据源中有一个计算字段,以数字形式表示一周中的某一天。然后,通过设置该列的“索引”值,更新colModel,使当前“日”字段使用该计算出的数字:

参见选项“索引”


我将数据类型用作JSON。您可以在我的代码中看到“dayOfWeek”列。 我想我必须在我的selecteditoption中使用一个数字作为editoptions:{value:“1:Monday;2:beday…},然后按索引排序

jq(function() {
    jQuery("#grid").jqGrid({ 
          url:'/ocr/webadmin/crudslsrouting?region='+document.getElementById("selectregion").value,
        datatype: 'json',
        mtype: 'GET',
          colNames:['id', 'weekAndGap', '<fmt:message key="slsrouting.year"/>', '<fmt:message key="slsrouting.week"/>', '<fmt:message key="slsrouting.region"/>', '<fmt:message key="slsrouting.dayOfWeek"/>', '<fmt:message key="slsrouting.timeFrom"/>', '<fmt:message key="slsrouting.timeto"/>', '<fmt:message key="slsrouting.1stTechnician"/>', '<fmt:message key="slsrouting.1stTechnicianNumber1"/>', '<fmt:message key="slsrouting.1stTechnicianNumber2"/>', '<fmt:message key="slsrouting.2ndTechnician"/>', '<fmt:message key="slsrouting.2ndTechnicianNumber1"/>', '<fmt:message key="slsrouting.2ndTechnicianNumber2"/>', '<fmt:message key="slsrouting.3rdTechnician"/>', '<fmt:message key="slsrouting.3rdTechnicianNumber1"/>', '<fmt:message key="slsrouting.3rdTechnicianNumber2"/>', '<fmt:message key="slsrouting.smsGroup"/>'],
        colModel:[
            {name:'id',index:'id', width:55,editable:false,editoptions:{readonly:true},hidden:true},
            {name:'weekAndGap',index:'weekAndGap', width:55,editable:false,editoptions:{readonly:true},hidden:true},
            {name:'year',index:'year', width:25,editable:false,editoptions:{readonly:true},hidden:true},
            {name:'week',index:'week', width:25,sorttype: 'integer',editable:true, editrules:{required:true}},
            {name:'region',index:'region', width:55,editable:true,editoptions:{required:true}},                
            {name:'dayOfWeek',index:'dayOfWeek', width:50,editable:true, editrules:{required:true}, edittype:"select", editoptions:{value:"Monday:Monday;Tuesday:Tuesday;Wednesday:Wednesday;Thursday:Thursday;Friday:Friday;Saturday:Saturday;Sunday:Sunday"}},
            {name:'timeFrom',index:'timeFrom', width:40,editable:true, editrules:{required:true}, editoptions:{dataInit: function (el) {jq(el).timepicker({});}}},
            {name:'timeTo',index:'timeTo', width:40,editable:true, editrules:{required:true}, editoptions:{dataInit: function (el) {jq(el).timepicker({});}}},
            {name:'technicianId1',index:'technicianId1', width:70,editable:true, editrules:{required:true}, edittype:"select"},
            {name:'technician1PhoneNumber1',index:'technician1PhoneNumber1', width:70,editable:true, editrules:{required:true}, edittype:"select", editoptions:{value:"-:-;Office Phone:Office Phone;Mobile Phone:Mobile Phone;Other Phone:Other Phone"}},
            {name:'technician1PhoneNumber2',index:'technician1PhoneNumber2', width:70,editable:true, editrules:{required:true}, edittype:"select", editoptions:{value:"-:-;Office Phone:Office Phone;Mobile Phone:Mobile Phone;Other Phone:Other Phone"}},
            {name:'technicianId2',index:'technicianId2', width:70,editable:true, editrules:{required:true}, edittype:"select"},
            {name:'technician2PhoneNumber1',index:'technician2PhoneNumber1', width:70,editable:true, editrules:{required:true}, edittype:"select", editoptions:{value:"-:-;Office Phone:Office Phone;Mobile Phone:Mobile Phone;Other Phone:Other Phone"}},
            {name:'technician2PhoneNumber2',index:'technician2PhoneNumber2', width:70,editable:true, editrules:{required:true}, edittype:"select", editoptions:{value:"-:-;Office Phone:Office Phone;Mobile Phone:Mobile Phone;Other Phone:Other Phone"}},
            {name:'technicianId3',index:'technicianId3', width:70,editable:true, editrules:{required:true}, edittype:"select"},
            {name:'technician3PhoneNumber1',index:'technician3PhoneNumber1', width:70,editable:true, editrules:{required:true}, edittype:"select", editoptions:{value:"-:-;Office Phone:Office Phone;Mobile Phone:Mobile Phone;Other Phone:Other Phone"}},
            {name:'technician3PhoneNumber2',index:'technician3PhoneNumber2', width:70,editable:true, editrules:{required:true}, edittype:"select", editoptions:{value:"-:-;Office Phone:Office Phone;Mobile Phone:Mobile Phone;Other Phone:Other Phone"}},
            {name:'smsGroupId',index:'smsGroupId', width:70,editable:true, editrules:{required:true}, edittype:"select"}

        ],

        editurl: "/ocr/webadmin/crudslsrouting/edit", 
        rowNum:300,
        rowList:[300,600,900,1200],
        height: 400,
        autowidth: true,
        rownumbers: true,
        pager: '#pager',
        viewrecords: true,
        caption:"SL Routing",
        emptyrecords: '<fmt:message key="common.emptyRecords"/>',
        async: false,
        loadonce: true,
        loadComplete: function() {                
            if(document.getElementById("defaultRegion").value!='ALL' || 
                    (document.getElementById("selectregion").value!="" && document.getElementById("selectregion").value!="ALL")){
            var regionValue=document.getElementById("selectregion").value;

            getNicknameList(regionValue);

            getSmsgroupList(regionValue);

            //testIfNoWeek0ForSLAndRegion(regionValue);


           }
           //testIfWeek0TotallyCovered();        
        },
        loadError : function(xhr,st,err) { 
            jQuery("#rsperror").html("Type: "+st+"; Response: "+ xhr.status + " "+xhr.statusText);
        },
        grouping:true,
        groupingView : { groupField : ['weekAndGap'],
                         groupDataSorted : true,
                         groupColumnShow : [false],
                         groupCollapse : true,
                         groupText : ['<fmt:message key="slsrouting.week"/> {0} <fmt:message key="slsrouting.covered"/> - {1} Item(s) <a class="ui-group-div ui-corner-all" href="Javascript:DuplicateAllTheWeek(\'{0}\');"><span class="ui-duplicate-image-link"></span> <fmt:message key="slsrouting.duplicate"/></a> <a class="ui-group-div ui-corner-all" href="Javascript:DeleteWeek(\'{0}\');"><span class="ui-delete-button-link"></span> <fmt:message key="common.delete"/></a> '] 
        },
        jsonReader : {
            root: "rows",
            page: "page",
            total: "total",
            records: "records",
            repeatitems: false,
            cell: "cell",
            id: "id"
        }
    });

    jq("#grid").jqGrid('navGrid','#pager',{del:false,add:false,edit:false,search:false});
    jq("#grid").jqGrid('filterToolbar',{stringResult: true,searchOnEnter : false,
        afterSearch : function(){
            if(jq("#gs_StateFull").val() == "") {
                jq("#grid").jqGrid('setGridParam',{groupingView: { groupCollapse : true} }).trigger('reloadGrid');
            } else {
                 jq("#grid").jqGrid('setGridParam',{groupingView: { groupCollapse : false} }).trigger('reloadGrid');
            }

        }

    }); 

    jq("#grid").navButtonAdd('#pager',
            {   caption:'<fmt:message key="common.add"/>', 
                buttonicon:"ui-icon-plus", 
                onClickButton: addRow,
                position: "last", 
                title:"", 
                cursor: "pointer"
            } 
    );

    jq("#grid").navButtonAdd('#pager',
            {   caption:'<fmt:message key="common.edit"/>', 
                buttonicon:"ui-icon-pencil", 
                onClickButton: editRow,
                position: "last", 
                title:"", 
                cursor: "pointer"
            } 
    );

    jq("#grid").navButtonAdd('#pager',
        {   caption:'<fmt:message key="common.delete"/>', 
            buttonicon:"ui-icon-trash", 
            onClickButton: deleteRow,
            position: "last", 
            title:"", 
            cursor: "pointer"
        } 
    );


});
jq(函数(){
jQuery(“#grid”).jqGrid({
url:'/ocr/webadmin/crudlsrouting?region='+document.getElementById(“selectregion”).value,
数据类型:“json”,
mtype:'获取',
colNames:['id','weakandgap','','','','','','','','','','','','','','','','','','',
colModel:[
{名称:'id',索引:'id',宽度:55,可编辑:false,编辑选项:{readonly:true},隐藏:true},
{名称:'weekAndGap',索引:'weekAndGap',宽度:55,可编辑:false,可编辑选项:{readonly:true},隐藏:true},
{名称:'year',索引:'year',宽度:25,可编辑:false,编辑选项:{readonly:true},隐藏:true},
{name:'week',index:'week',width:25,sorttype:'integer',editable:true,editrules:{required:true},
{名称:'region',索引:'region',宽度:55,可编辑:true,可编辑选项:{required:true},
{名称:'dayOfWeek',索引:'dayOfWeek',宽度:50,可编辑:true,editrules:{required:true},edittype:“选择”,editoptions:{value:“周一:周一;周二:周二;周三:周三;周四:周四;周五:周五;周六:周六;周日:周日”},
{name:'timeFrom',index:'timeFrom',width:40,editrules:{required:true},editoptions:{dataInit:function(el){jq(el).timepicker({});}},
{name:'timeTo',index:'timeTo',width:40,editrules:{required:true},editoptions:{dataInit:function(el){jq(el).timepicker({});}},
{name:'technicianId1',index:'technicianId1',宽度:70,可编辑:true,editrules:{required:true},edittype:“select”},
{name:'technician1PhoneNumber1',index:'technician1PhoneNumber1',width:70,editrules:{required:true},edittype:“select”,editoptions:{value::-:-;办公电话:办公电话;手机:手机;其他电话:其他电话},
{name:'technician1PhoneNumber2',index:'technician1PhoneNumber2',width:70,editrules:{required:true},edittype:“select”,editoptions:{value::-:-;办公电话:办公电话;手机:手机;其他电话:其他电话},
{name:'technicianId2',index:'technicianId2',宽度:70,可编辑:true,editrules:{required:true},edittype:“select”},
{name:'technician2PhoneNumber1',index:'technician2PhoneNumber1',width:70,editrules:{required:true},edittype:“select”,editoptions:{value::-:-;办公电话:办公电话;手机:手机;其他电话:其他电话},
{名称:'technician2PhoneNumber2',索引:'technician2PhoneNumber2',宽度:70,可编辑:true,编辑规则:{required:true},编辑类型:“select”,编辑选项:{value::-:-;办公电话:办公电话;手机:手机;其他电话:其他电话”},
{name:'technicianId3',index:'technicianId3',宽度:70,可编辑:true,editrules:{required:true},edittype:“select”},
{name:'technician3PhoneNumber1',index:'technician3PhoneNumber1',width:70,editrules:{required:true},edittype:“select”,editoptions:{value::-:-;办公电话:办公电话;手机:手机;其他电话:其他电话},
{名称:'technician3PhoneNumber2',索引:'technician3PhoneNumber2',宽度:70,可编辑:true,编辑规则:{required:true},编辑类型:“select”,编辑选项:{value::-:-;办公电话:办公电话;手机:手机;其他电话:其他电话”},
{name:'smsGroupId',index:'smsGroupId',宽度:70,可编辑:true,editrules:{required:true},edittype:“select”}
],
editurl:“/ocr/webadmin/crudlsrouting/edit”,
行数:300,
行列表:[3006009001200],
身高:400,
自动宽度:正确,
行数:对,
寻呼机:“#寻呼机”,
viewrecords:是的,
标题:“SL路由”,
空记录:“”,
async:false,
有一次:是的,
loadComplete:函数(){
if(document.getElementById(“defaultRegion”).value!='ALL'||
(document.getElementById(“selectregion”).value!=“和&document.getElementById(“selectregion”).value!=“全部”)){
var regionValue=document.getElementById(“selectregion”).value;
获取昵称列表(regionValue);
getSmsgroupList(regionValue);
//陆地区域的测试结果(区域值);
}
//TestiFWeek0全部覆盖();
},
loadError:函数(xhr,st,err){
jQuery(“#rsperor”).html(“类型:+st+”,响应:+xhr.status+”+xhr.statusText);
},
分组:对,
groupingView:{groupField:['weekAndGap'],
groupDataSorted:对,
groupColumnShow:[错误],
群体崩溃:是的,
groupText:['{0}-{1}项]
},
jsonReader:{
根:“行”,
第页:“第页”,
总计:“总计”,
记录:“记录”,
重复项:false,
细胞:“细胞”,
id:“id”
}
});
jqGrid('navGrid','#pager',{del:false,add:false,edit:false,search:false});
jqGrid('filterToolbar',{stringResult:true,searc
jq(function() {
    jQuery("#grid").jqGrid({ 
          url:'/ocr/webadmin/crudslsrouting?region='+document.getElementById("selectregion").value,
        datatype: 'json',
        mtype: 'GET',
          colNames:['id', 'weekAndGap', '<fmt:message key="slsrouting.year"/>', '<fmt:message key="slsrouting.week"/>', '<fmt:message key="slsrouting.region"/>', '<fmt:message key="slsrouting.dayOfWeek"/>', '<fmt:message key="slsrouting.timeFrom"/>', '<fmt:message key="slsrouting.timeto"/>', '<fmt:message key="slsrouting.1stTechnician"/>', '<fmt:message key="slsrouting.1stTechnicianNumber1"/>', '<fmt:message key="slsrouting.1stTechnicianNumber2"/>', '<fmt:message key="slsrouting.2ndTechnician"/>', '<fmt:message key="slsrouting.2ndTechnicianNumber1"/>', '<fmt:message key="slsrouting.2ndTechnicianNumber2"/>', '<fmt:message key="slsrouting.3rdTechnician"/>', '<fmt:message key="slsrouting.3rdTechnicianNumber1"/>', '<fmt:message key="slsrouting.3rdTechnicianNumber2"/>', '<fmt:message key="slsrouting.smsGroup"/>'],
        colModel:[
            {name:'id',index:'id', width:55,editable:false,editoptions:{readonly:true},hidden:true},
            {name:'weekAndGap',index:'weekAndGap', width:55,editable:false,editoptions:{readonly:true},hidden:true},
            {name:'year',index:'year', width:25,editable:false,editoptions:{readonly:true},hidden:true},
            {name:'week',index:'week', width:25,sorttype: 'integer',editable:true, editrules:{required:true}},
            {name:'region',index:'region', width:55,editable:true,editoptions:{required:true}},                
            {name:'dayOfWeek',index:'dayOfWeek', width:50,editable:true, editrules:{required:true}, edittype:"select", editoptions:{value:"Monday:Monday;Tuesday:Tuesday;Wednesday:Wednesday;Thursday:Thursday;Friday:Friday;Saturday:Saturday;Sunday:Sunday"}},
            {name:'timeFrom',index:'timeFrom', width:40,editable:true, editrules:{required:true}, editoptions:{dataInit: function (el) {jq(el).timepicker({});}}},
            {name:'timeTo',index:'timeTo', width:40,editable:true, editrules:{required:true}, editoptions:{dataInit: function (el) {jq(el).timepicker({});}}},
            {name:'technicianId1',index:'technicianId1', width:70,editable:true, editrules:{required:true}, edittype:"select"},
            {name:'technician1PhoneNumber1',index:'technician1PhoneNumber1', width:70,editable:true, editrules:{required:true}, edittype:"select", editoptions:{value:"-:-;Office Phone:Office Phone;Mobile Phone:Mobile Phone;Other Phone:Other Phone"}},
            {name:'technician1PhoneNumber2',index:'technician1PhoneNumber2', width:70,editable:true, editrules:{required:true}, edittype:"select", editoptions:{value:"-:-;Office Phone:Office Phone;Mobile Phone:Mobile Phone;Other Phone:Other Phone"}},
            {name:'technicianId2',index:'technicianId2', width:70,editable:true, editrules:{required:true}, edittype:"select"},
            {name:'technician2PhoneNumber1',index:'technician2PhoneNumber1', width:70,editable:true, editrules:{required:true}, edittype:"select", editoptions:{value:"-:-;Office Phone:Office Phone;Mobile Phone:Mobile Phone;Other Phone:Other Phone"}},
            {name:'technician2PhoneNumber2',index:'technician2PhoneNumber2', width:70,editable:true, editrules:{required:true}, edittype:"select", editoptions:{value:"-:-;Office Phone:Office Phone;Mobile Phone:Mobile Phone;Other Phone:Other Phone"}},
            {name:'technicianId3',index:'technicianId3', width:70,editable:true, editrules:{required:true}, edittype:"select"},
            {name:'technician3PhoneNumber1',index:'technician3PhoneNumber1', width:70,editable:true, editrules:{required:true}, edittype:"select", editoptions:{value:"-:-;Office Phone:Office Phone;Mobile Phone:Mobile Phone;Other Phone:Other Phone"}},
            {name:'technician3PhoneNumber2',index:'technician3PhoneNumber2', width:70,editable:true, editrules:{required:true}, edittype:"select", editoptions:{value:"-:-;Office Phone:Office Phone;Mobile Phone:Mobile Phone;Other Phone:Other Phone"}},
            {name:'smsGroupId',index:'smsGroupId', width:70,editable:true, editrules:{required:true}, edittype:"select"}

        ],

        editurl: "/ocr/webadmin/crudslsrouting/edit", 
        rowNum:300,
        rowList:[300,600,900,1200],
        height: 400,
        autowidth: true,
        rownumbers: true,
        pager: '#pager',
        viewrecords: true,
        caption:"SL Routing",
        emptyrecords: '<fmt:message key="common.emptyRecords"/>',
        async: false,
        loadonce: true,
        loadComplete: function() {                
            if(document.getElementById("defaultRegion").value!='ALL' || 
                    (document.getElementById("selectregion").value!="" && document.getElementById("selectregion").value!="ALL")){
            var regionValue=document.getElementById("selectregion").value;

            getNicknameList(regionValue);

            getSmsgroupList(regionValue);

            //testIfNoWeek0ForSLAndRegion(regionValue);


           }
           //testIfWeek0TotallyCovered();        
        },
        loadError : function(xhr,st,err) { 
            jQuery("#rsperror").html("Type: "+st+"; Response: "+ xhr.status + " "+xhr.statusText);
        },
        grouping:true,
        groupingView : { groupField : ['weekAndGap'],
                         groupDataSorted : true,
                         groupColumnShow : [false],
                         groupCollapse : true,
                         groupText : ['<fmt:message key="slsrouting.week"/> {0} <fmt:message key="slsrouting.covered"/> - {1} Item(s) <a class="ui-group-div ui-corner-all" href="Javascript:DuplicateAllTheWeek(\'{0}\');"><span class="ui-duplicate-image-link"></span> <fmt:message key="slsrouting.duplicate"/></a> <a class="ui-group-div ui-corner-all" href="Javascript:DeleteWeek(\'{0}\');"><span class="ui-delete-button-link"></span> <fmt:message key="common.delete"/></a> '] 
        },
        jsonReader : {
            root: "rows",
            page: "page",
            total: "total",
            records: "records",
            repeatitems: false,
            cell: "cell",
            id: "id"
        }
    });

    jq("#grid").jqGrid('navGrid','#pager',{del:false,add:false,edit:false,search:false});
    jq("#grid").jqGrid('filterToolbar',{stringResult: true,searchOnEnter : false,
        afterSearch : function(){
            if(jq("#gs_StateFull").val() == "") {
                jq("#grid").jqGrid('setGridParam',{groupingView: { groupCollapse : true} }).trigger('reloadGrid');
            } else {
                 jq("#grid").jqGrid('setGridParam',{groupingView: { groupCollapse : false} }).trigger('reloadGrid');
            }

        }

    }); 

    jq("#grid").navButtonAdd('#pager',
            {   caption:'<fmt:message key="common.add"/>', 
                buttonicon:"ui-icon-plus", 
                onClickButton: addRow,
                position: "last", 
                title:"", 
                cursor: "pointer"
            } 
    );

    jq("#grid").navButtonAdd('#pager',
            {   caption:'<fmt:message key="common.edit"/>', 
                buttonicon:"ui-icon-pencil", 
                onClickButton: editRow,
                position: "last", 
                title:"", 
                cursor: "pointer"
            } 
    );

    jq("#grid").navButtonAdd('#pager',
        {   caption:'<fmt:message key="common.delete"/>', 
            buttonicon:"ui-icon-trash", 
            onClickButton: deleteRow,
            position: "last", 
            title:"", 
            cursor: "pointer"
        } 
    );


});