Как сохранить выбранные строки в datatable - PullRequest
0 голосов
/ 03 июля 2018

Вот как я создал таблицу данных

<table id="@nameof((OrderViewModel.Orders)" 
       data-bind="datatable: @nameof((OrderViewModel.Orders), datatableOptions: getTableOptions('@nameof((OrderViewModel.Orders)')" 
       class="table table-bordered dt-responsive nowrap datatable-style" 
       cellspacing="0">
</table>

Мне нужно сохранить выбранные строки выбранными после выполнения действия обновления, я вызываю метод поиска для обновления таблицы данных (я знаю, что это не лучший способ сделать это), чтобы все выбранные элементы были потеряны.

Есть предложения, пожалуйста?

1 Ответ

0 голосов
/ 03 июля 2018

Вы можете создать карту выбранных полей данных ключа перед отправкой вашего ajax для обновления. В случае успеха и при поиске в базе данных и получении результатов вы можете сравнить исходный выбор и пометить все ранее выбранные строки как отмеченные. Предполагая, что есть свойство .isSelected, чтобы пометить вашу модель как выбранную модель:

До ajax:

var selectedKeys = myArray.filter(function(item){ return item.isSelected(); }).map(funcion(item){ return item.KeyFieldToLookFor(); })

Затем при получении новых данных:

success: function(data){
   if(data && data.length)
      data.forEach(function(item){ 
      if(selectedKeys.contains(item.KeyFieldToLookFor())
     {
        item.isSelected(true);
     }
  })
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...