jQgrid表可以正常工作。在最后一行中,我启用了列过滤。其他列中的搜索/过滤工作正常。但无法处理从Status
生成的formatter
列
$('#jqGrid').jqGrid({
datatype: "local",
data : res.data,
colModel: [
{
label : 'Batch No.', name:'batch_no', firstsortorder:'asc'
},
{
label : 'Batch Wt.', name:'expected_batch_wt', formatter:'number', align:'right'
}
,
// ...
// ...
{
label : 'Status'
,formatter:function (cellvalue, options, rowObject){
if(condition)
status = 'MSG 1';
else if(condition)
status = 'MSG 2';
else
status = 'DEF MSG';
return status;
}
,align : 'center'
// ,sortable : false
}
],
rowNum : 1000,
rownumbers : true,
pager : '#jqGridPager',
caption : `CURRENT STOCK REPORT`,
height : '500px',
width : '1500',
footerrow : true,
userDataOnFooter : true,
gridComplete : function(){
var $grid = $('#jqGrid'),
sum_batch_count = $grid.jqGrid('getCol', 'batch_no', false, 'count'),
sum_batch_wt = $grid.jqGrid('getCol', 'expected_batch_wt', false, 'sum');
$grid.jqGrid('footerData', 'set', {
'batch_no' : sum_batch_count,
'expected_batch_wt' : sum_batch_wt
});
}
});
jQuery("#jqGrid").jqGrid('filterToolbar', { stringResult: true, searchOnEnter: false, defaultSearch: "cn" });
在您的情况下,数据类型是本地的,格式化程序根据条件显示某些值。此值未与您的实际本地数据关联。如果数据类型是本地的,则在本地数据数组中执行搜索-在您的情况下,这是:res.data。由于此数据不包含您新构造的值,因此搜索不返回任何内容。
要解决该问题,一种可能的解决方案是使用unformatter函数。
取决于所使用的jqGrid版本(Guriddo jqGrid,free-jqGrtid,jqGrid <= 4.7),您可以有不同的选择,但是需要知道该版本。我也建议您搜索此站点以解决您遇到的问题。