Постраничный поиск по датам, возвращающий результат второй страницы - PullRequest
0 голосов
/ 28 января 2019

В моем угловом приложении я использую таблицы данных, которые имеют следующие параметры:

strategyDatatbleOptions = {
    sDom: 'rt<"bottom"p>',
    ajax: (data, callback, settings) => {
      this.strategyDataService.getStrategiesData().subscribe((data) => {
        data = data.json().data;
        if (data == undefined) {
          data = [];
        }
        callback({
          aaData: data,
        })
      })
    },
    columns: [
      {
        data: 'name', 'width': '10%'
      },
      {
        data: 'executor.name', 'width': '10%',
        render: function (data, type, row) {
          if (data) {
            return data
          } else {
            return null;
          }
        }
      },
      {
        data: 'account.brokerId', 'width': '10%'
      },
      {
        data: 'properties', 'width': '15%'
      },
      {
        data: 'capital', 'width': '15%'
      },
      {
        data: 'createTime', 'width': '15%'
      },
      {
        data: 'updateTime', 'width': '15%'
      },
      {
        data: null, 'width': '10%',
        orderable: false,
        className: 'editcenter',
        defaultContent:
          '<a class="clone_save"> <i class="fa fa-clone"></i></a>',
        responsivePriority: 2
      },
      {
        data: 'active', 'width': '5%',
        render: function (data, type, row) {
          if (data) {
            // return data;
            return '<form class="smart-form"><label class="toggle"><input id="contracts" type="checkbox" name="checkbox-toggle"  checked="checked" /><i  style="border-radius: 0px;top :2px;;" data-swchon-text="ON" data-swchoff-text="OFF"></i></label></form>';
          } else {
            // return data;
            return '<form class="smart-form"><label class="toggle"><input id="contracts" type="checkbox"  name="checkbox-toggle" /><i  style="border-radius: 0px;top :2px;;" data-swchon-text="ON" data-swchoff-text="OFF"></i></label></form>';
          }
        },
        "targets": 2
      }
    ],
    rowCallback: (row: Node, data: any | Object, index: number) => {
      $('input', row).unbind('click');
      $('input', row).bind('click', () => {
        let toggleSwitch = event.target as any;
        let status = toggleSwitch.checked;
        this.strategyDataService.changeStrategyStatus(data.name, status).subscribe(response => response.code);
      });
      //Clone Strategy
      $('a.clone_save', row).unbind('click');
      $('a.clone_save', row).bind('click', () => {
        this.cloneStrategy(data);
      })
    },
    "pageLength": 2
  }

Теперь в html-шаблоне у меня есть собственные поля поиска, которые выглядят так:

Datatable Image

Это поле поиска будет искать и возвращать столбец результатов в разумных пределах.

Код результата поиска

columnSearch() {

    if ($.fn.DataTable.isDataTable('#strategyDataTable table')) {
      var table = $('#strategyDataTable table').DataTable({
        orderCellsTop: true,
        fixedHeader: true,
        stateSave: true,
        retrieve: true,
      });
    } 
    $('#strategyDataTable thead').on('click', 'th', function () {
      let colIndex = $(this).closest("th").index()
      $('input.filter', this).on('keyup change', function () {
        if (table.column(colIndex).search() !== this.value) {
          table
            .column(colIndex)
            .search(this.value)
            .draw();            
        }
      });
    })

  }

Теперь у меня есть 2 строки на странице вэта проблема с данными, если я что-то ищу на первой странице.Он также возвращает результаты со второй страницы также, если ключевое слово соответствует.Я хочу получить результат только со страницы, которую я выбрал, а не с другой страницы.Если ключевое слово соответствует только одной строке из двух, а также соответствует другим строкам страницы.Результат должен показывать только один результат.Не на других страницах результатов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...