2015-10-20 4 views
0

Я использую jqgrid версию 4.5.2. Ниже показана защита моей сетки. В модели столбца у меня есть столбец с именем region с фильтром, применяемым над ним.Настройка логики фильтра jqgrid

jq("#grid").jqGrid({  
url:finalUrl, 
ajaxGridOptions: {cache: false},//added the option to always reload the grid and not to cache the result. 
datatype: 'json',  
mtype: 'GET', 
colNames:[ 'Requestor Name'],  
colModel:[ 
    {name:'requestor',index:'requestor',sortable: true, width:100,editable:false, editrules:{required:true}, editoptions:{size:10}}, 
    {name:'requestorRegion', index:'requestorRegion',sortable: true,width:65,editable:false, editrules:{required:true}, editoptions:{size:8, style: "height: 90%"}, stype:'select', edittype:'select',"searchoptions": { 
      "value": ":All;Asia Pacific:Asia Pacific;Australia/NZ:Australia/NZ;Europe:Europe;Japan:Japan;Latin America:Latin America;North America:North America;CCEMA:CCEMA" 
     }} 
    ], 
    postData: {  
    },  
    height: 'auto',  
    autowidth: true,  
    rownumbers: true,  
    pager: '#pager',  
    viewrecords: true,  
    sortorder: "asc",  
    emptyrecords: "Empty records",  
    loadonce: true, 
    rowNum:20, 
    ignoreCase: true, 
    prmNames: { 
     nd: null 
    }, 
    loadComplete: function() { 
    }, 

    jsonReader : {  
     root: "rows",   
     repeatitems: false, 
     page:"page",   
     total: "total",   
     records: "records", 
     cell: "cell",   
     id: "id"  
     } 
    }); 

jQuery("#grid").jqGrid('navGrid','#pager',{edit:false,add:false,del:false,search: false, refresh:true}) 
    .navButtonAdd('#pager',{caption:"Export All",buttonicon:"ui-icon-document",onClickButton: function(){window.open(excelUrl,'_self');},position:"last"}); 
jQuery("#grid").jqGrid('filterToolbar', { stringResult: true, searchOnEnter: false, defaultSearch: "cn",ignoreCase: true }); 

Я выбираю европу области из фильтра, чем сетка должна фильтровать записи accroding региона Европы. Это хорошо работает. Но теперь требование состоит в том, что если выбран регион Европы, я должен отображать все записи, содержащие регион europe и CCEMA в сетке. Это возможно? Если это возможно, чем это сделать?

Примечание: Я загружаю все записи из базы данных сразу в сетку, используя loadonce = true.

ответ

0

Если я правильно понимаю вашу проблему, вы можете попробовать комбинировать значение для варианта Европа, например, «Европа, CCEMA: Европа»; поэтому на стороне сервера вы можете получить «Европа, CCEMA» в качестве значения поиска, когда вы выпадаете в раскрывающемся списке Европа. Затем вы можете использовать эти значения с предложением SQL «in» с небольшими изменениями.

Вы также можете использовать символ, отличный от comma (,), чтобы комбинировать разные значения, но вам нужно будет установить логику соответственно на стороне сервера.

дать это попробовать увидеть, если это помогает

например

{name:'requestorRegion', index:'requestorRegion',sortable: true,width:65,editable:false, editrules:{required:true}, editoptions:{size:8, style: "height: 90%"}, stype:'select', edittype:'select',"searchoptions": { 
     "value": ":All;Asia Pacific:Asia Pacific;Australia/NZ:Australia/NZ;Europe,CCEMA:Europe;Japan:Japan;Latin America:Latin America;North America:North America;CCEMA:CCEMA" 
    }} 
Смежные вопросы