我有一个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);
});

09-30 10:17