我正在使用jqGrid作为我的数据表解决方案。以下是配置代码。
$(function() {
$("#submitInput").click(function() {
alert("I am called...")
jQuery("#list").jqGrid({
datatype: "json",
url: "http://localhost:1201/admin/someURL.htm",
mtype:"POST",
height: "auto",
colNames:["Column 1", "Column 2", "Column 3", "Column 4", "Column 5"],
colModel:[
{name:"col1", index:"col1", sortable:true, resizable:false},
{name:"col2", index:"col2", sortable:true},
{name:"col3", index:"col3", sortable:false, resizable:false},
{name:"col4", index:"col4", sortable:true, resizable:false},
{name:"col5", index:"col5", sortable:true, resizable:false}
],
sortname:'col1',
sortorder:'asc',
pager: $('#pager'),
rowNum:10,
viewrecords: true,
rowList:[10,20,30],
caption: 'Some Grid Values',
jsonReader: {
root: "responseData",
page: "currentPage",
total: "totalPages",
records: "totalFetchedRecords",
repeatitems: true,
cell: "rowContent",
id: "rowID"
},
gridComplete: function() {
alert("Loading done...");
}
});
});
});
我的JSON数据采用以下格式:
"currentPage":"1","responseData":[
{"rowContent":["Col1_Val_000001","Col2_Val_1","Col3_Val_1","Col4_Val_1","Col5_Val_1"],"rowID":"Col1_Val_000001"},
{"rowContent":["Col1_Val_000002","Col2_Val_2","Col3_Val_2","Col4_Val_2","Col5_Val_2"],"rowID":"Col1_Val_000002"}
], "totalFetchedRecords":"50","totalPages":"5"}
在我的HTML中,有一个ID为“submitInput”的按钮和一个id为“list”的表。
不知何故,此数据未加载到网格中。是什么原因?
答案 0 :(得分:0)
可能你不应该在点击句柄内创建jqGrid。您应该在单击句柄之外执行此操作一次,并在处理程序内部调用jQuery("list").trigger('reloadGrid')
。如果在开始时数据不应加载到网格中,则可以使用datatype: 'local'
作为开头。如果需要,你可以使用hide()
和show()
jQuery函数使用jqGrid进行 div ,有时可访问,有时不可见。在click
处理程序内,您可以将datatype
更改为'json'
setGridParam()
,然后调用trigger('reloadGrid')
。在很多情况下,您还需要在调用trigger('reloadGrid')
之前更改URL的某些参数(请参阅Should one replace the usage addJSONData of jqGrid to the usage of setGridParam(), and trigger('reloadGrid')?),但在您的情况下可能不需要它。