JQuery Массовое редактирование и обновление строк с данными с использованием ASP. Net MVC 5 - PullRequest
0 голосов
/ 04 августа 2020

У меня есть таблица, содержащая более 1000 строк, и я использовал JQuery Datatable для разбивки на страницы и поиска. Все работает нормально, но когда пользователь хочет обновить значение любого столбца, каждую строку нужно обновлять одну за другой. Это занимает много времени для 1000 строк.

Мой вопрос: есть ли какие-либо возможности, такие как массовое редактирование. Пример: если я выбираю, какую строку хочу обновить, как если бы я выбрал 100 строк, тогда я обновлю только значение одной строки, и когда я автоматически нажму кнопку «Обновить», все 100 строк должны будут обновиться.

1 Ответ

1 голос
/ 04 августа 2020

В общих чертах вы можете сделать что-то подобное:

  1. Используйте плагин выбора для флажков в таблицах данных для выбора пользователя ( опция muti ). Вы не можете добавить кнопки selectAll и selectNone, такие как this .

  2. Создайте функцию js, в которой вы получите все выбранные идентификаторы строк с этим образцом код:

    var idsSelected = myTable.rows({ selected: true }).ids().toArray();
    

    (для этого требуется ajax и rowId в конструкторе , например, ).

  3. Создайте форму внутри модального окна, для Например, с новыми данными и полями, например fieldX и fieldY.

  4. Когда пользователь нажимает кнопку отправки, выполняет вызов ajax и отправляет идентификаторы строк и данные формы в контроллер.

    Например:

     $.ajax({
         url: miUrl,
         method: miMEthod,
         traditional: true,                                 //  We need this for send array of integers
         data: {
             Ids: myTable.rows({ selected: true }).ids().toArray(),
             ParamX: $("#paramX").val(),
             ParamY: $("#paramY").val()
         },
         success: function (response) {    
              $("#response").html("COMPLETE !!!");
         },
         async: true
     });
    

    In. net, если вы хотите отправить массив целых чисел на контроллер , убедитесь, что у вас есть traditional: true в ajax, иначе могут возникнуть проблемы

    Контроллер будет примерно таким:

     [HttpPost]
     public ActionResult MyMethod(int[] Ids, string ParamX, string ParamY)
     { ... }
    
  5. Сделайте обновление в базе данных с данными в пункте 4.

...