仅当过滤器就位时,我才需要显示“重置过滤器”。需要阅读过滤后的消息。如果消息包含“已过滤”,我将调用showResetFilter方法。尝试table.info(),但收到错误消息“对象不支持属性或方法'info'”。我还可以使用其他方法来读取过滤器消息吗?图像链接在这里TableImage。
var table = $('#myTable').DataTable();
var message = table.info();
var isFiltered = message.indexOf("filtered") > -1;
if (isFiltered) {
ShowResetFilter();
}
我有两种不同的方法可以执行此操作,但两种方法都不是很好看的方法。
这是基于以前版本的DataTables的,但似乎仍然可以使用。请参阅DataTables网站上的此论坛帖子,那里有人问了类似的问题。该插件的作者说,以下是唯一的方法,但是他承认这是一种解决方法
编辑:引起我注意,我以前的synax不正确。当我从匈牙利符号中取出大写字母时,我不得不猜测一下。有关此调用的原始语法,请参见下面的引文,该语法应在1.10中运行,但将很快弃用,因此建议您反对。
我的代码基于作者的引用:
当前,您需要执行以下操作:
fnSettings().oPreviousSearch.sSearch
获取当前过滤器。我将在1.10中使它变得更容易些。
但据我所知,他没有在1.10中简化它:(
这是我的方法,虽然很难看,但也可以使用。您可以尝试调用page.info()
(此处的文档)获取recordsTotal
和recordsDisplay
属性。如果它们相等,则没有筛选器;如果不相等,则必须有一个筛选器。看起来像这样:
var pageInfo = table.page.info();
if(pageInfo.recordsTotal != pageInfo.recordsDisplay){
//Handle it/do stuff
}
请注意,这两种方法都有点怪异,因此,如果您正在寻找最佳解决方案,我建议您继续寻找。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句