jqGrid本地数据搜索
我正在使用 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"]
}, (...)
}
}
I'm using jqGrid plugin to show some data (locally), so
$("#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
});
The problem is about searching. When I enter text on any toolbar for searching, all row data disappear. I've seen this demo http://www.trirand.com/blog/jqgrid/jqgrid.html and I can't find what is wrong.
Is there anything missing on my grid?
Thanks in advance
EDIT:
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;
}
The Json has the following format
{
"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"]
}, (...)
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
抱歉,但我在您发布的网格中没有看到任何问题。查看演示。
我还可以向您推荐一件事。您最好使用
datatype: 'json'
和mtype: 'POST'
直接从服务器获取数据,而不需要单独制作$.post调用。您只需使用以下设置:
请参阅下一个演示。
Sorry, but I don't see any problem in the grid which you posted. Look at the demo.
One thing I can recommend you additionally. You should better use
datatype: 'json'
andmtype: 'POST'
to get the data directly from the server without needs to make separate$.post
call. You need just use the following settings:See the next demo.