jqxgrid запрос вызывается дважды, когда используется готовая функция - PullRequest
0 голосов
/ 23 ноября 2018

Я использую jqwidgets jqxgrid для отображения записей в сетке.мое требование - добавить начальный фильтр при загрузке страницы.поэтому я создал функцию для начального фильтра и использовал ее в функции готовности.но когда страница загружается, возникает два запроса: один - по умолчанию, без начального фильтра, а второй - с начальными данными фильтра.поэтому, почему запрос вызывается дважды, я делаю неправильное связывание, пожалуйста, помогите.

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: [ ... ]
 })

помогите мне в этом, как загрузить сетку с начальным фильтром при загрузке страницы.

...