我使用jqGrid插件显示一些数据(本地),所以
$("#myList").jqGrid({
datatype : 'jsonstring',
datastr : getMyJson(),
colNames : ['ID', 'TITLE', 'PROFILE'],
colModel : [{
name : 'Id',
index : 'Id',
width : 50,
sorttype : 'int'
}, {
name : 'Title',
index : 'Title',
width : 100
}, {
name : 'Profile',
index : 'Profile',
width : 80
}],
jsonReader : {
root : "rows",
page : "page",
total : "total",
records : "records",
repeatitems : true,
cell : "cell",
id : "id"
},
autoencode : true,
ignoreCase : true,
autowidth : true,
cache : false,
shrinkToFit : false,
height : 500,
rowNum : 3000,
rowList : [10, 20, 30],
pager : jQuery('#pager1'),
viewrecords : true,
sortable : true,
loadonce : true,
gridview : true,
sortorder : "asc",
multiselect : true,
caption : "My List",
emptyrecords : 'No results'
});
$("#myList").jqGrid('filterToolbar', {
stringResult : true,
searchOnEnter : false
});
问题在于搜索。当我在任何工具栏上输入文本进行搜索时,所有行数据都会消失。我已经看过这个演示版http://www.trirand.com/blog/jqgrid/jqgrid.html而且我找不到错误。
我的网格上有什么遗漏吗?
提前致谢
编辑:
function getMyJson() {
var json;
jQuery.ajaxSetup({
async : false
});
$.post(BIN_ROOT + "getdata.php", function(data, textStatus) {
json = data.Mytable;
}, "json");
jQuery.ajaxSetup({
async : true
});
return json;
}
Json具有以下格式
{
"errorCode": 0,
"errorDesc": "No Error",
"MyTable": {
"page": 1,
"total": 1,
"records": 12,
"rows": [{
"id": "41",
"cell": ["41", "Title1", "User"]
}, {
"id": "30",
"cell": ["30", "Title1", "Admin"]
}, (...)
}
}
答案 0 :(得分:1)
抱歉,我发布的网格中没有任何问题。请看the demo。
我还可以向你推荐一件事。您最好使用datatype: 'json'
和mtype: 'POST'
直接从服务器获取数据,而无需单独调用$.post
。您只需使用以下设置:
$("#myList").jqGrid({
url: BIN_ROOT + "getdata.php",
datatype: 'json',
mtype: 'POST',
jsonReader : {
root : "MyTable.rows",
page : "MyTable.page",
total : "MyTable.total",
records : "MyTable.records"
},
//... other parameter which you use
});
请参阅the next demo。