bootstrapTable使用refreshOptions后,表格的列排列被重置为默认值,而不是保留使用refreshOptions前的表格排序。排序使用的就是bootstraptable的sortable,而使用排序的一个选择栏【用于导出的】,看源代码好像是这个方法是表格给重建了。
改源代码,新增一个设置导出数据类型的方法,找到js/bootstrap-table.js,编辑器打开
3228行增加 var METHODS = ['setExportDataType',如下图
{
key: "setExportDataType",
value: function setExportDataType(value) {
this.options.exportDataType = value;
}
}
$("#sel_exportoption").change(function () {
$("#bootStrapTable").bootstrapTable('setExportDataType',$(this).val())
return;
$('#bootStrapTable').bootstrapTable('refreshOptions', { exportDataType: $(this).val() });
})
在使用 refreshOptions 方法刷新 bootstrapTable 选项后,表格的列排列被重置为默认值的问题,可能是由于 refreshOptions 方法会重新渲染表格导致的。因此,可以尝试在调用 refreshOptions 方法之前先保存当前的排序状态,并在重新渲染表格后恢复排序状态,代码示例如下:
// 保存当前的排序状态
var sortName = $('#table').bootstrapTable('getOptions').sortName;
var sortOrder = $('#table').bootstrapTable('getOptions').sortOrder;
// 刷新选项
$('#table').bootstrapTable('refreshOptions', {
// ... 新选项 ...
});
// 恢复排序状态
$('#table').bootstrapTable('refreshOptions', {
sortName: sortName,
sortOrder: sortOrder
});
另外,可能需要注意的是,如果表格的列排列已经被重置为默认值,那么恢复排序状态后也不一定能保证按照原来的顺序进行排序。因此,最好在初始化表格时就设置好需要的排序状态,避免后续出现列排列被重置的情况。
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!