Столбец сортировки Jqgrid по дням недели - PullRequest
1 голос
/ 31 января 2012

У меня есть столбец под названием "День", в котором есть названия дней в моей jqgrid. Я не могу понять, как сделать так, чтобы сортировка происходила в порядке дня недели, а не в алфавитном порядке.

Есть идеи? Есть ли способ переопределить поведение сортировки по умолчанию?

спасибо!

Ответы [ 2 ]

0 голосов
/ 02 февраля 2012

Я использую тип данных в качестве JSON.Вы можете увидеть в моем коде столбец 'dayOfWeek'.Я думаю, мне нужно использовать число в моей выбранной опции редактирования как опции редактирования: {значение: "1: понедельник; 2: вторник ...}, а затем сортировать по индексу?

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


});
0 голосов
/ 31 января 2012

Во-первых, вам нужно иметь вычисляемое поле в вашем источнике данных, которое представляет день недели в виде числа.Затем обновите ваш colModel, чтобы текущее поле «День» использовало это вычисленное число, установив значение «index» для этого столбца:

http://www.trirand.com/jqgridwiki/doku.php?id=wiki:colmodel_options

См. Параметр «index»

... 
{name:'DAY', label:'Day', index: 'DayAsNumber',} },
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...