Как я могу использовать ajax.reload с данными JQuery - PullRequest
0 голосов
/ 20 апреля 2019

У меня есть требование создать форму поиска, которая будет вызывать веб-API и заполнять таблицу данных jQuery при нажатии кнопки.Я не хочу загружать форму, пока кнопка не нажата, поэтому у меня есть отдельный обработчик кнопки для вызова моего метода публикации.Мне сказали, что я должен использовать ajax.reload () с этим на тот случай, если кому-то придется искать снова, чтобы сузить результаты, но у меня возникли некоторые проблемы при работе с ним в моем коде.Может ли кто-нибудь помочь мне с моим требованием?Мой код работает нормально, но я хотел бы знать, можно ли сделать это более эффективно.Смотрите мой рабочий код ниже.

<script>
    var dataTable;
    var resultsContainer = $('#ResultsContainer');

    $(document).ready(function() {
      dataTable = $('#SearchResultsTable').DataTable({
        "columns": [
          { "data": "clientId" },
          { "data": "lastName"   },
          { "data": "firstName"  }
        ],
        "language": {
          "zeroRecords": '@Resource.NoRecordsFound'
        },
        "searching": false,
        "lengthChange": false
      });
    });

    $('#SearchButton').click(function (e) {
      e.preventDefault();
      RequestData();
    });

    function RequestData() {
      $.post('@Url.Content("?handler=ClientSearch")', $('#ClientSearchForm').serialize(), function (data) {
        ProcessResponse(data);
      });
    }

    function ProcessResponse(data) {  
        dataTable.clear();
        dataTable.rows.add(data);
        dataTable.draw();
        resultsContainer.addClass('d-block');
    }

  </script>



1 Ответ

0 голосов
/ 20 апреля 2019

Похоже, что метод DataTable ajax.reload требует URL для данных, которые будут определены.В примере на https://datatables.net/reference/api/ajax.reload, они используют параметр ajax в объекте конфигурации для установки URL:

var table = $('#example').DataTable( {
    ajax: "data.json"
} );

Тогда вызовы table.ajax.reload() просто извлекут обновленные данные из *Снова 1009 *.В вашем случае вы делаете POST для получения данных с помощью формы поиска.Поэтому вам необходимо:

Надеюсь, это поможет.

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