我有一个jqxGrid形式的JqWidgets库,我已经将数据绑定到jqxGrid了。
var url = "getConsignments.php?type="+$('#selectIsDelevered').val();
var consignmentsource =
{
datafields: [
{
name: 'ConsignmentId', type: 'string' }
,{
name: 'Name' , type: 'string' }
],
id: 'ConsignmentId',
datatype: "json",
async: false,
cache:false,
url: url ,
filter: function()
{
// update the grid and send a request to the server.
$("#jqxgrid").jqxGrid('updatebounddata', 'filter');
},
sort: function()
{
// update the grid and send a request to the server.
$("#jqxgrid").jqxGrid('updatebounddata', 'sort');
},
root: 'Rows',
cache: false,
beforeprocessing: function(data)
{
if (data != null)
{
consignmentsource.totalrecords = data[0].TotalRows;
}
}
}
这用于初始化和服务器调用。
以下代码用于绑定到我从服务器获取的数据
consignmentAdapter = new $.jqx.dataAdapter(consignmentsource);
$("#jqxgrid").jqxGrid(
{
source: consignmentAdapter,
theme:'bootstrap',
columnsresize:true,
width: '100%',
filterable:true,
autoheight:true,
rowdetails: true,
autorowheight :true,
showfilterrow: true,
pageable:true,
sortable: true,
virtualmode: true,
rendergridrows: function()
{
return consignmentAdapter.records;
},
ready: function () {
// $("#jqxgrid").jqxGrid('showrowdetails', 1);
}
,
columns: [
{
text: 'ID', width: '10%',datafield: 'ConsignmentId'}
,
{
text: 'Name', datafield: 'Name', width: '18%' }
]
}
);
selectIsDelevered
是一个select
标记,具有3个选项,每个选项加载不同的数据,我用('#selectIsDelevered').change()
函数执行rebind,reload或refresh网格我已经测试了
$('#jqxGrid').jqxGrid('updatebounddata');
,但是它没有用,即使我尝试了$('#jqxGrid').jqxGrid('refresh');
并重复绑定步骤。我花了我三天时间,有什么建议吗?
最佳答案
您可以将url直接更改为以下代码:
('#selectIsDelevered').change({
var tmpS = $("#jqxgrid").jqxGrid('source');
tmpS._source.url = "getConsignments.php?type="+$('#selectIsDelevered').val();
$("#jqxgrid").jqxGrid('source', tmpS);
});