我正在使用jqwidgets jqxgrid在网格中显示记录。我的要求是在页面加载时添加初始过滤器。所以我为初始过滤器创建了一个函数,并在ready函数下使用了它。但是在加载页面时,有两个请求被触发,一个是针对没有初始过滤器的默认请求,第二个是针对初始过滤器数据的请求。所以为什么请求被调用两次是我做错了绑定,请帮忙。
var source =
{
datafields:
[
{name: 'id', type: 'number'}
........
],
url: 'http://testapi-application.localhost.com/cases/search',
datatype: 'json',
pagesize: 20,
type: 'post',
root: 'Rows',
cache: false,
sortcolumn: 'id',
sortdirection: 'desc',
data: {
params: basicFilters,
},
filter: function () {
$('#jqxgrid').jqxGrid('updatebounddata', 'filter')
},
sort: function () {
$('#jqxgrid').jqxGrid('updatebounddata', 'sort')
},
beforeprocessing: function (data) {
if (data != null && data.length > 0) {
source.totalrecords = data[0].TotalRows
}
},
pager: function (pagenum, pagesize, oldpagenum) {
$('#jqxgrid').jqxGrid('updatebounddata', 'data')
},
}
以下是用于初始过滤器的addfilter函数
var addfilter = function () {
var filtergroup = new $.jqx.filter();
var filter_or_operator = 1;
var filtervalue = 'In store awaiting dispatch to repairer';
var filtercondition = 'equal';
var filter1 = filtergroup.createfilter('stringfilter', filtervalue, filtercondition);
filtergroup.addfilter(filter_or_operator, filter1);
$("#jqxgrid").jqxGrid('addfilter', 'repairer_status', filtergroup);
$("#jqxgrid").jqxGrid('applyfilters');
}
var dataAdapter = new $.jqx.dataAdapter(source)
//叫做jqxgrid
$('#jqxgrid').jqxGrid(
{
source: dataAdapter,
altrows: true,
width: 1106,
autoheight: true,
sortable: true,
filterable: true,
showfilterrow: true,
showsortmenuitems: false,
pageable: true,
virtualmode: true,
rendergridrows: function (obj) {
return obj.data
},
ready: function () {
addfilter()
},
sorttogglestates: 1,
autoshowloadelement: false,
columnsresize: true,
autorowheight: true,
columnsheight: 40,
enablebrowserselection: true,
columns: [ ... ]
})
帮助我了解如何在页面加载时使用初始过滤器加载网格。