更新数据时,JqxGrid过滤器值清除

时间:2015-08-20 03:44:39

标签: javascript jquery jqxgrid jqwidget

我有一个带有RowFilters的网格。我正在搜索来自DB的值这是我的jqxgrid。

var source =
      {
          datatype: "obserableArray",
          datafields: [
              { name: 'ReceiptId', type: 'int' },
              { name: 'Receipt', type: 'string' },
              { name: 'ReceiptTypeId', type: 'int' },
              { name: 'ReceiptType', type: 'string' },
              { name: 'CustomerId', type: 'int' },
              { name: 'Customer', type: 'string' },
              { name: 'ReceiptDate', type: 'date' },
              { name: 'PaymentTypeId', type: 'int' },
              { name: 'PaymentType', type: 'string' },
              { name: 'Total', type: 'float' },
              { name: 'Select', type: 'bool' }
          ],

          id: 'ReceiptId',
          localdata: fnCmnBankDepositViewModel.AvailableBankDepositReceiptsList()

      };

var dataAdapter = new $.jqx.dataAdapter(source);
// initialize jqxGrid
$("#jqxReceiptgrid").jqxGrid(
{
    width: '100%',
    source: dataAdapter,                
    pageable: true,
    autoheight: true,
    sortable: true,
    altrows: true,
    enabletooltips: true,
    editable: true,
    selectionmode: 'multiplecellsadvanced',
    columnsresize: true,
    showfilterrow: true,
    filterable: true,

    columns: [


      { text: 'Reciept', datafield: 'Receipt', editable: false },
      { text: 'ReceiptTypeId', datafield: 'ReceiptTypeId', width: '10%', sortable: false, editable: false },
      { text: 'Receipt Type', datafield: 'ReceiptType', width: '10%', sortable: false, editable: false },
      { text: 'CustomerId', datafield: 'CustomerId',  sortable: false, editable: false },
      { text: 'Customer', datafield: 'Customer',  sortable: false, editable: false },
      { text: 'Receipt Date', datafield: 'ReceiptDate', width: '15%', filtertype: 'date', cellsformat: 'd', editable: false },
      { text: 'PaymentTypeId', datafield: 'PaymentTypeId', width: '10%', sortable: false, editable: false },
      { text: 'Payment Type', datafield: 'PaymentType', width: '10%', sortable: false, editable: false },
      { text: 'Total', datafield: 'Total', sortable: false, filtertype: 'number', editable: false },
        {text: 'Select', columntype: 'checkbox', sortable: false,datafield: 'Select', filtertype: 'bool'}

    ]

});
$("#jqxReceiptgrid").jqxGrid('hidecolumn', 'RecieptId');
$("#jqxReceiptgrid").jqxGrid('hidecolumn', 'Reciept');
$("#jqxReceiptgrid").jqxGrid('hidecolumn', 'CustomerId');
$("#jqxReceiptgrid").jqxGrid('hidecolumn', 'ReceiptTypeId');
$("#jqxReceiptgrid").jqxGrid('hidecolumn', 'PaymentTypeId');
$("#jqxReceiptgrid").jqxGrid('applyfilters');

$("#jqxReceiptgrid").bind('cellendedit', function (event) {
    var args = event.args;
    var row = event.args.rowindex;
    var datarow = $("#jqxReceiptgrid").jqxGrid('getrowdata', row);
    if (args.value === true) {
        AddReceipttoSave(datarow);
    } else {
        RemoveReceipt(datarow);
    }
});

$("#jqxReceiptgrid").on("filter", function (event) {
    var filterinfo = $("#jqxReceiptgrid").jqxGrid('getfilterinformation');
    fnCmnBankDepositViewModel.GetReceiptsbyFilter(filterinfo);
});

一旦过滤器工作,过滤器值将发送到DB,我在另一个函数中填充本地数据并在另一个函数中更新绑定。

for (var i = 0; i < 50; i++) {

        var tmpObj = {
            ReceiptId: i + 1,
            Receipt: "Receiipt" + i,
            ReceiptTypeId: 1,
            ReceiptType: "Invoice",
            CustomerId: i + 1,
            Customer: "Nimal" + i,
            ReceiptDate: "2015/08/05",
            PaymentTypeId: 1,
            PaymentType: "Cash",
            Total: 56.25,
            Select: false
        };
        fnCmnBankDepositViewModel.AvailableBankDepositReceiptsList.push(tmpObj);

    };

    var source =
      {
          datatype: "obserableArray",
          datafields: [
              { name: 'ReceiptId', type: 'int' },
              { name: 'Receipt', type: 'string' },
              { name: 'ReceiptTypeId', type: 'int' },
              { name: 'ReceiptType', type: 'string' },
              { name: 'CustomerId', type: 'int' },
              { name: 'Customer', type: 'string' },
              { name: 'ReceiptDate', type: 'date' },
              { name: 'PaymentTypeId', type: 'int' },
              { name: 'PaymentType', type: 'string' },
              { name: 'Total', type: 'float' },
              { name: 'Select', type: 'bool' }
          ],

          id: 'ReceiptId',
          localdata: fnCmnBankDepositViewModel.AvailableBankDepositReceiptsList()
      };


    //$("#jqxReceiptgrid").jqxGrid('updatebounddata');
    var dataAdapter = new $.jqx.dataAdapter(source);
    $("#jqxReceiptgrid").jqxGrid({ source: dataAdapter });

但是一旦更新了这个网格,过滤搜索值就越清楚如何设置网格而不清除过滤器值。

1 个答案:

答案 0 :(得分:0)

我发现的解决方案

$("#jqxReceiptgrid").jqxGrid('updatebounddata', 'cells');