0

multiselect の列はグリッド パラメータに保存され、保存された state( getGridParam) を使用してグリッドをリロードすると、列の順序が台無しになる選択用の二重の列が表示されます。

パラメータをロードする前のグリッド
前

後

コードは次のとおりです。

jQuery("#list2").jqGrid({
    url:'jqgrid/server.php?q=2',
    datatype: "json",
    colNames:['a','UID','Phone', 'Message', 'created','replyed'],
    colModel:[
          {name:'action',index:'action', width:55,search:false,'sortable':false},
        {name:'id',index:'uid', width:55},
        {name:'phone_number',index:'phone_number', width:90,'editable':true},
        {name:'message',index:'message', width:500,'editable':true},
        {name:'created',index:'created', width:80, align:"right",'editable':true,stype:'select',edittype:"select",editoptions: {value:"Yes:Yes;No:No"}},
        {name:'replyed',index:'replyed', width:80, align:"right",'editable':true,edittype:"checkbox",editoptions: {value:"Yes:No"}},        
    ],
    rowNum:50,
    toolbar: true,
    height: '100%',
    width: 800,
    rowList:[10,20,50,100,300,1000],
    pager: '#pager2',
    sortname: 'uid',
    sortable:true,
    viewrecords: true,
    sortorder: "desc",  
    caption:"Pilote",
    gridview : true,
    multiselect: true,
});


function saveStateGrid(){
     state = $('#list2').getGridParam();
     localStorage.setItem("gridState", JSON.stringify(state));
}
function loadStateGrid(){
    state = JSON.parse(localStorage.getItem('gridState'));
    jQuery("#list2").GridUnload("#list2");
    //state.multiselect = false;
    $('#list2').jqGrid(state);
    $('#list2').trigger('reloadGrid');
}
4

0 に答える 0