带有寻呼机的表排序器 - 表为空时强制更新

Posted

技术标签:

【中文标题】带有寻呼机的表排序器 - 表为空时强制更新【英文标题】:tablesorter with pager - force update when table is empty 【发布时间】:2015-01-20 20:32:48 【问题描述】:

我正在使用 tablesorter 和 pager 插件。 所有的分页都是在服务器端完成的,所以我使用寻呼机的 ajaxUrlajaxObjectcustomUrl 选项来处理用户翻页时所需的所有 ajax 调用。

customUrl 选项中,我有一个函数可以检索用户在外部字段中定义的时间范围,并将其添加到 url 中,以便仅过滤该范围内的条目。

当用户更改该时间范围时,我使用 $("tr", tableElement).remove(); 从表中删除所有行,然后使用 $(tableElement).trigger("update"); 触发寻呼插件的 ajax 调用。

当表中有条目时,此方法有效:条目被删除,然后更新触发器发出新的 ajax 请求,并以适当的分页方式获取表内选定时间范围内的行。

问题:当当前选择的范围为空(即未找到条目),并且用户选择了新范围时,update 触发器看不到数据的任何变化/条目(在表的结构内),因此不会发出 ajax 请求。

有没有办法强制表自我更新并运行 ajax 查询过程?

【问题讨论】:

【参考方案1】:

除了清除表并触发更新之外,还有一种不同的方法可以用来强制寻呼机更新:

在当前版本(2.18.4)中,最简单的方法是清除内部存储的变量,然后触发页面更改:

$('table')[0].config.pager.last.ajaxUrl = '';
$('table').trigger('pageSet');

我知道,它不漂亮

由于这个问题和过去的寻呼机问题需要强制更新,tablesorter 的下一次更新(到 v2.18.5 或 v2.19.0)将包括一个新的寻呼机方法,它将强制更新寻呼机:

$('table').trigger('pagerUpdate');

【讨论】:

我尝试了你给我的第一个解决方案,效果很好。谢谢!

以上是关于带有寻呼机的表排序器 - 表为空时强制更新的主要内容,如果未能解决你的问题,请参考以下文章

仅当右表为空时,LEFT JOIN 才返回左表的第一行

ABAP的问题:表为空时,可以modify 吗

gridcontrol从表为空时如何显示

强制值为空时无法引发 VALUE_ERROR

当 BIRT 报告中的表为空时显示“无数据”消息

DB2 - 如果日期 X 的表为空,则插入,否则继续