jquery - 在数据表中保存/恢复搜索值

标签 jquery search datatables

我正在使用带有多个搜索框的数据表,并且启用了 stateSave。该表确实会保存状态,但重新加载表时,搜索框不会保存。

例如,我有 3 列...图书作者、图书标题和图书 ISBN。我为每列都有一个搜索框,以提高搜索能力。如果我在作者中搜索“Mark”,则会按预期显示作者中名称为“Mark”的所有结果。刷新页面或执行任何其他会强制表重新加载的操作(例如添加书籍),会显示保存的搜索结果,但搜索框为空。为了让所有项目重新出现,我需要转到图书作者搜索框并按退格键。

那么...如何保存 searchByAuthor 文本框的状态?

或者...我怎样才能获得搜索到的值,以及它用于哪一列?如果我能得到它,我就可以重新填充正确的搜索框。

最佳答案

首先,参见this forum post插件作者说

This is expected. The filtering inputs are not something DataTables has any knowledge of - you call the column().search() method from them, but that could be from anywhere), therefore it doesn't (and can't) have the ability to reinsert the values into the inputs.

不过,他也提供了一个解决方案,就是使用state.loaded() API调用来获取保存状态的值,并从中获取列中的值搜索框。执行此操作的方法如下(here's a link 到此示例所在的 state.loaded() 文档):

$(document).on( 'init.dt', function ( e, settings ) {
    var api = new $.fn.dataTable.Api( settings );
    var state = api.state.loaded();
    var searchText = state.columns[/*columnNumber*/].search;
} );

然后,您可以使用 searchText 重新填充字段中的值。有关可以从 state 变量获取哪些数据的更多信息,请查看 this link参见 state() 文档。

如果有任何不清楚的地方,请查看这些链接,我解释的大部分内容都是直接从它们获得的,并且将进行更详细的解释。

关于jquery - 在数据表中保存/恢复搜索值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38441050/

相关文章:

arrays - Swift - 如果包含字符串并附加到另一个数组,则在数组中搜索

jquery - DataTables 内置搜索 - 禁用 "onKeyUp"触发器

javascript - 如何使用 JQuery 填充 React 生成的输入字段

PHP/MySQL 搜索不工作

jquery - 使用 JQuery.browser 根据布局引擎选择 CSS

search - 删除Elasticsearch中的旧条目

jquery - DataTables 分页似乎不适用于服务器端数据

javascript - jQuery 数据表重新加载

jquery - 创建一条 float 趋势线?

javascript - CSS3 过渡轮播