使用jqGrid 5.1.1
我正在尝试使用自定义搜索文件管理器来显示我在gTmpl中“请求”的内容,但它不会向我显示除默认内容之外的任何内容。
我的gTmpl将根据要提取的某些数据的GRID始终不同,所以这是少数几个例子之一:
$.extend($.jgrid.defaults,{
datatype:'json',jsonReader:{repeatitems:false},loadonce:true,jqModal:false,
viewrecords:true,altRows:true,hoverrows:false,hidegrid:false,
rowNum:500,rowList:[100,250,500,1000,2000,3000],autowidth:true,pager:'#InfViewP',
recordtext:'{0}/{2} Rec',emptyrecords:'No Rec Found',loadtext:'Loading...'
});
var gTmpl = {groupOp:'OR',rules:[{'field':'userName','op':'cn','data':''},{'field':'CityName','op':'cn','data':''}]};
$('#InfView').jqGrid({
url:url,
colModel:[
{label:'Player',name:'userName'},
{label:'City',name:'CityName',align:'right',width:350}
]
});
$('#InfView').navGrid('#InfViewP',{edit:false,add:false,del:false},{},{},{},gTmpl,{top:54,left:50,caption:'Search - Overview'});
我不想使用tmplNames或tmplFilers(如果可能的话)。它有什么办法吗?最后,如果没有gTmpl,搜索对话框将正确定位在浏览器上,但是当我有gTmpl时,{top,left,caption ...}将被忽略并置于0,0。
除非我的参数有误,否则请告诉我..谢谢!
答案 0 :(得分:1)
您可能希望实现的是在搜索对话框的第一个开口处显示指定的过滤器。为此,您应首先指定postData.filters
和秒,以使用multipleSearch:true
和可选multipleGroup:true
作为搜索选项:
var myInitialFilter = {
groupOp:'OR',
rules: [
{'field':'userName','op':'cn','data':''},
{'field':'CityName','op':'cn','data':''}
]
};
$('#InfView').jqGrid({
url:url,
colModel:[
{label:'Player',name:'userName'},
{label:'City',name:'CityName',align:'right',width:350}
],
postData: {
filters: myInitialFilter
}
});
$('#InfView').navGrid('#InfViewP',{edit:false,add:false,del:false},{},{},{},
{multipleSearch:true, top:54, left:50, caption:'Search - Overview'});
此外,我建议您考虑使用free jqGrid而不是商业Guriddo jqGrid JS(请参阅当前价格here)。免费的jqGrid是我开发的jqGrid的分支,可以完全免费使用。它与jqGrid 4.7(您目前使用的功能)兼容。
免费的jqGrid有许多新功能,在某些情况下可能会有所帮助。例如,您从服务器加载数据并使用loadonce: true
选项。这意味着服务器必须返回排序数据。免费的jqGrid有新选项forceClientSorting: true
,可以与loadonce: true
选项一起使用。它强制在客户端进行初始排序。如果您要添加search: true
选项并指定postData.filter
,如上例所示,那么从服务器返回的数据将在第一页之前过滤并排序本地将显示数据。用户仍然可以更改过滤器并显示所有数据。