【问题标题】:How to retain selected rows in datatable如何在数据表中保留选定的行
【发布时间】:2018-12-11 04:10:50
【问题描述】:

这是我创建数据表的方式

<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>

我需要在执行更新操作后保持选中的行,我调用一个搜索方法来刷新数据表(我知道这不是最好的方法)所以所有选中的项目都会丢失。

有什么建议吗?

【问题讨论】:

    标签: asp.net-mvc knockout.js


    【解决方案1】:

    您可以在发送 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);
         }
      })
    }
    

    【讨论】:

    • 感谢您的回复,我没有 isSelected 属性,我有一个包含所选项目 ID 的数组,如何在 javascript 中突出显示行
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-05
    • 2021-01-17
    • 1970-01-01
    • 2014-10-25
    • 2014-09-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多