使用单个列筛选进行状态保存

State Saving with individual column filtering

本文关键字:状态 保存 筛选 单个列      更新时间:2023-09-26

>我在数据表中使用单个列过滤以及状态保存:true。要执行列过滤,我正在使用列过滤器.js。

我面临一个问题,如果我过滤列中的数据并重新加载页面,它仅保持表的状态,但文本框变为空。在页面刷新时,表和搜索文本框的状态也保持不变。

在页面刷新时,应显示文本框值,但取而代之的是文本框变为空。

请有人告诉我如何维护文本框值以及表状态。

我正在使用此代码

jQuery('#Gridtable').dataTable({
    stateSave: true,                                
    "aLengthMenu": [[10, 25, 50, 100, 500, -1], [10, 25, 50, 100, 500, "All"]],
    "iDisplayLength": 10,
}).columnFilter({
    sPlaceHolder: "head:after",
    aoColumns: [
        { type: "text" },
        { type: "text" },
        { type: "text" },
    ]
});
"stateLoaded": function stateLoadedCallback(settings, state) {
    state.columns.forEach(function (column, index) {
       $('#' + settings.sTableId + '-head-filter-' + index).val(column.search.search);
    });
}

只需将您所在州的值放入字段中即可

如果您

使用stateSave=true数据表选项,则可以以这种方式加载它(在我的情况下为页脚):

    stateSave: true,
    stateLoadParams: function(settings, data) {
    
        for (i = 0; i < data.columns["length"]; i++) {
            let col_search_val = data.columns[i].search.search;
            if (col_search_val !== "") {
                $("input", $("#your-id-of-table tfoot th")[i]).val(col_search_val);
            }
         }
    }

干杯!

以防万一两年后有人偶然发现了这篇文章......这应该是所描述问题的解决方案。