这是我创建数据表的方式
<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>
执行更新操作后,我需要保持选中的行处于选中状态,我调用搜索方法来刷新数据表(我知道这不是最好的方法),因此所有选中的项都将丢失。
有什么建议吗?
答案 0 :(得分:0)
您可以在发送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);
}
})
}