当我从我的webservice返回记录时,我正试图只显示我的jqGrid.我不希望它被折叠到你只看到标题栏的地方,但如果这是我能做的最好的,我想我可以在标题中加入一条有意义的信息.不过,我更愿意隐藏网格并显示"找不到记录"消息div块.
我也猜测,如果最坏的情况发生,我可以在这个问题上做解决方案如何在jqGrid中显示没有任何数据的信息?(链接包括作为其他人的替代可能解决方案).
我已经尝试在从函数和GRIDCOMPLETE事件加载数据时使用的函数内部执行.hide(),并且都没有完成隐藏网格.我是JQuery的新手,更不用说使用jqGrid了.
$(document).ready(function() {
$("#list").jqGrid({
url: 'Service/JQGridTest.asmx/AssetSearchXml',
datatype: 'xml',
mtype: 'GET',
colNames: ['Inv No', 'Date', 'Amount'],
colModel: [
{ name: 'invid', index: 'invid', width: 55 },
{ name: 'invdate', index: 'invdate', width: 90 },
{ name: 'amount', index: 'amount', width: 80, align: 'right' }],
pager: jQuery('#pager'),
postData: { "testvar": "whatever" },
rowNum: 10,
rowList: [10, 20, 30],
sortname: 'id',
sortorder: "desc",
viewrecords: true,
imgpath: 'themes/sand/images',
caption: 'My first grid',
gridComplete: function() {
var recs = $("#list").getGridParam("records");
if …Run Code Online (Sandbox Code Playgroud) 我发现在jQuery的jqGrid插件中我可以动态添加行,但是我可以对列做同样的事情吗?如果有一个简单的表我宁愿手动手动执行此操作,但jqGrid会将表信息存储在很多div中.
我有这个简单的功能
function createGrid(limit){
$("#list").trigger("reloadGrid");
$("#list").jqGrid({
url:indexObj.gridUrl,
postData:{
"limit":limit
},
datatype: "json",
colNames:['ID','type','folder','Description'],
colModel:[
{name:'id',index:'id', width:50},
{name:'type',index:'type', width:100},
{name:'folder_id',index:'folder_id', width:100},
{name:'description',index:'description', width:200}
]
});
}
Run Code Online (Sandbox Code Playgroud)
我首先使用limit = 1调用它,然后调用服务器并返回正确的数据.然后我用limit = 2调用它,它只是重新运行前一个ajax调用(limit = 1)并返回相同的数据.
为什么postData实际上没有改变?我在fireBug中看到"限制"确实具有正确的值.
我正在尝试使用新行,colNames和colModel重新加载jqGrid.行数据似乎加载正常,但列似乎没有刷新.我已经尝试过使用GridUnload和GridDestroy,但我最终完全丢失了jQuery DOM实例,并且不再加载任何数据.
var grid = $('#my-grid');
if(grid[0].grid == undefined) {
grid.jqGrid(options);
} else {
grid.setGridParam(options);
grid.trigger('reloadGrid');
}
Run Code Online (Sandbox Code Playgroud)
网格实例很重要,因为它将作为参数传递给其他对象.这些对象可以附加侦听器或触发事件.
我使用的是4.4.2版本