嗯,我用头撞墙,因为我在很多应用程序中使用jqgrid,而类似的代码在其他情况下工作,但是这个! 这里是代码...jqgrid filterToolbar不能正常工作
var pfct = $("#pfc_table");
pfct.jqGrid({
url: 'costs',
datatype: 'json',
'postData': JSON.stringify(getConds()),
mtype: 'POST',
colNames:['Id','Name','Formula','Conditions'],
colModel :[
{name:'id', index:'id', width:40, search:true},
{name:'name', index:'name', width:130, search:true},
{
name:'formula', index:'formula',width:310, search:true,
formatter : function(value, options, rData){
return value.substring(value.indexOf('=')+1);
}
},
{name:'conditionstr', index:'conditionstr', width:160,search:true}
],
jsonReader: {
repeatitems:false,
root: function (r) { return r.data.rows; },
page: function (r) { return r.data.currpage; },
total: function (r) { return r.data.totalpages; },
records: function (r) { return r.data.totalrecords; }
},
gridComplete: function() {
},
gridview: true,
height: 'auto',
autowidth: true,
pager: '#pfc_pager',
rowNum:25,
viewrecords: true,
loadonce: true,
ignoreCase: true,
multiselect: false,
pagination: true
});
pfct.navGrid('#pfc_pager',{edit:false,add:false,del:false,search:false,refresh:false});
pfct.jqGrid('filterToolbar',{stringResult: true,searchOnEnter: false});
JSON数据我发送有没有在colmodel定义,但是这个从来没有在过去的一个问题,一些额外的属性。本地排序和分页工作正常,但过滤不! 根据记录,这是该数据的样子:
{"data":{"totalpages":1,"currpage":1,"totalrecords":10,"rows":[{"name":"Test","id":18195,"level":0,"currency":"EUR","default":true,"formula":"f_18195()=110","ownerId":1,"categoryName":"Test cat","parentId":0,"rebate":0,"portDues":true,"modified":1310036286000,"conditionstr":"Condition 1, Condition 2"}],"userdata":null},"status":true,"responseError":null}
你的意思是说,'name'列中的过滤不起作用,或者你在所有列中过滤都有问题? getConds函数是什么?你可以发布'getConds'的代码,或者如果你删除''postData',试试你是否有过滤问题:JSON.stringify(getConds())'? – Oleg
筛选不适用于任何列。 getConds()创建一个简单的JavaScript对象,它有一个整数数组并且工作正常(服务器解析并返回匹配结果)。我会尝试删除这个,但我怀疑它有什么关系。我注意到的其他事情是,如果我尝试预先在列上执行排序(默认排序),它不起作用,但之后会起作用(通过单击该列)。另外,如果我在任何过滤器文本框上键入某些内容,则会应用默认排序,但不会被过滤。我想我会使用jqgrid的源代码和调试 – nvrs
嗯,我尝试使用本地数据,现在它应该可以正常工作。实际数据没有区别,表格定义中的唯一更改与现在的本地数据有关。 Wierd ... – nvrs