分页时保留 liferay-ui:search-container
Keep liferay-ui:search-container while paging
我有一个 <liferay-ui:search-container>
显示我的结果。
我启用了 rowChecker
,这样每一行都可以通过复选框 select 启用。
它被放置在一个表格中;通过这种方式,用户可以 select 更多行,然后单击我的 "submit" 按钮,该操作能够获取 selected 行的 ID。
但用户无法 select 两行出现在不同的页面中(例如,有一个分页 delta=5,他们需要元素 1 和 6)。
我想不出解决这个问题的方法。
你以前有过这样的经历吗?
谢谢
我看到两个解决你问题的方法:
将 onchange
处理程序添加到复选框并发送 AJAX 请求以将所选项目存储在服务器上:
// Stub using AUI/YUI:
AUI().use("node", function(A) {
A.all("td.entry-selector input").on('change', function (e) {
var checkbox = e.target;
var selectionState = checkbox.get('checked');
// Send the selection to the server - depends on the architecture of your portlet
...
});
});
- 使用标有 "Remember selection" 的单独按钮发布当前选择。
您应该显示一个文本,指示选择了多少元素,并提供再次取消选择所有元素的选项。
并且您必须在适当的时候(例如,对于新的搜索)重置所选元素的列表 - 这不是一项微不足道的任务。许多应用程序不记得跨页面请求的行选择的原因之一。
我有一个 <liferay-ui:search-container>
显示我的结果。
我启用了 rowChecker
,这样每一行都可以通过复选框 select 启用。
它被放置在一个表格中;通过这种方式,用户可以 select 更多行,然后单击我的 "submit" 按钮,该操作能够获取 selected 行的 ID。
但用户无法 select 两行出现在不同的页面中(例如,有一个分页 delta=5,他们需要元素 1 和 6)。
我想不出解决这个问题的方法。
你以前有过这样的经历吗?
谢谢
我看到两个解决你问题的方法:
将
onchange
处理程序添加到复选框并发送 AJAX 请求以将所选项目存储在服务器上:// Stub using AUI/YUI: AUI().use("node", function(A) { A.all("td.entry-selector input").on('change', function (e) { var checkbox = e.target; var selectionState = checkbox.get('checked'); // Send the selection to the server - depends on the architecture of your portlet ... }); });
- 使用标有 "Remember selection" 的单独按钮发布当前选择。
您应该显示一个文本,指示选择了多少元素,并提供再次取消选择所有元素的选项。
并且您必须在适当的时候(例如,对于新的搜索)重置所选元素的列表 - 这不是一项微不足道的任务。许多应用程序不记得跨页面请求的行选择的原因之一。