选中所有复选框LotusXPages

选中所有复选框LotusXPages,xpages,lotus-domino,Xpages,Lotus Domino,我正在开发一个Xpages应用程序,在这个应用程序上我有一个视图控件。 我试图在列标题中设置一个复选框,以选中视图中的所有复选框。 问题是,当我从视图转到另一个页面时,它的行未被选中,并且仅在可见页面上进行选择。 因此,我希望能够选择视图所有页面中的所有行,当从视图的一个页面切换到另一个页面时,没有选择的行将消失。视图和选择存在两个问题 首先,在页面之间移动的寻呼机操作不会处理“选择所有行”数据,因为它在默认情况下启用了部分执行。如果将partialExecute=“false”放入寻呼机,您将

我正在开发一个Xpages应用程序,在这个应用程序上我有一个视图控件。 我试图在列标题中设置一个复选框,以选中视图中的所有复选框。 问题是,当我从视图转到另一个页面时,它的行未被选中,并且仅在可见页面上进行选择。
因此,我希望能够选择视图所有页面中的所有行,当从视图的一个页面切换到另一个页面时,没有选择的行将消失。

视图和选择存在两个问题

首先,在页面之间移动的寻呼机操作不会处理“选择所有行”数据,因为它在默认情况下启用了部分执行。如果将
partialExecute=“false”
放入寻呼机,您将看到页面之间会保留“选择所有行”复选框

但是,如果在列和列标题上有复选框,则组件将在后端维护SelectedDS数组。不幸的是,这个数组只保存可见的选择。因为数组由viewPanel组件维护,该组件不知道未显示的数据项列表

此外,复选框实现并没有提供任何偶数机制,您可以在后端抓取选择以在页面之间缓存它们

要确定“全选”复选框是否可行,只需一点技巧。假设您使用的是所有默认样式

<xp:inputHidden
    id="inputAllSelected"
    value="#{viewScope.allSelected}"
    defaultValue="false"></xp:inputHidden>
<xp:scriptBlock
    id="scriptBlock1">
    <xp:this.value><![CDATA[
function getSelectAllCheckbox() {
    return dojo.query("input.xspCheckBoxViewColumnHeader")[0];
}

function toggleSelectAll(){
    dojo.byId("#{id:inputAllSelected}").value=getSelectAllCheckbox().checked;
}

dojo.addOnLoad(function() { 
    dojo.connect(getSelectAllCheckbox(), "onchange", toggleSelectAll);
});
]]></xp:this.value>
</xp:scriptBlock>


要在页面之间缓存复选框,可以使用自定义列实现自己的复选框。我建议使用数据表组件以获得更大的灵活性

我不确定这在传统的视图控件中是否可行。你可以通过一个重复控件让每个复选框都保存一个值来完成这项任务。看看这个,也可以从答案和其他注释中看出,这不是一项真正简单的任务。但是,我的主要问题是,您希望对所有选定的条目执行什么操作?大多数情况下,实现目标还有其他方法。或者换句话说:从Notes客户端开发到Xpages,我们自然倾向于寻找类似的解决方案,就像我们一直使用的解决方案一样。通常哪一个不是最好的