在筛选的xpages视图中检索列值

时间:2014-01-31 00:09:49

标签: xpages

我在xpage上定义了一个视图。我还有几个过滤器(基于列),用户可以选择并组合以过滤视图中的结果。我基于此生成了一个查询字符串,我在dominoView.search中构建(执行完整的刷新)。我想要做的是获取搜索结果,以便我可以更新页面上其他位置显示的一些计数。不过,我很难弄清楚我可以在哪里执行这个逻辑。我正在尝试使用view.getAllEntries()然后迭代集合。有时似乎它有效,但有时我似乎得到了未经过滤的观点。有人建议我在其中一个事件(beforePageLoad?)中显式调用view.FTSearch,然后立即执行我的getAllEntries调用,将结果保存在viewScope中,但是当我尝试执行此操作时,我得到“浏览Notes视图时出错”运行时错误。有什么指针吗? TIA!

编辑:在研究了xpages生命周期之后(这仍然有点令人困惑),我想我可以微调我的问题。这是我的第一个stackoverflow问题,所以我希望这样做可以做得很好......

正如我所描述的,我在xpage上定义了dominoView。重复迭代视图的行,显示文档中的某些字段。如果我在搜索属性中定义查询,则重复会正确显示缩减的文档集而不是完整集。 (查询是在搜索属性中通过SSJS从组合框的eventHandler中viewScope中定义的一些变量计算出来的。)但是,如果我尝试使用myView访问repeat的渲染部分(使用SSJS)中的视图中的当前条目。 getAllEntries(其中myView被定义为重复的“值”),即使查询已完成,我仍然可以获取所有文档。似乎在那一点上,视图变量已经应用了它的搜索(因为重复工作),那么为什么不同的结果呢?有没有其他方法来访问视图的行?为了进一步复杂化,这只是一个简单的实验,可以澄清问题;正如我之前所说,我实际上并不想访问重复中的视图数据,我想在xpage文件中重复之前定义的一些组合框的渲染或值部分中访问它。

我希望现在更有意义......

编辑#2:我忘了添加,如果我在调用myView.getAllEntries之前手动调用FTSearch(或FTSearchSorted),那么我想我可以使这个工作。除了视图的内置搜索之外,似乎没有必要这样做。

1 个答案:

答案 0 :(得分:0)

根据我的要求,您希望迭代以前过滤的条目中的条目,即其结果条目集合小于视图本身。

我还没有得到(还​​)你想要对结果做什么,或者你想要从过滤视图的迭代中得到什么(你提到一些计数要显示在其他地方)

可能一个好方法是使用视图的.getAllEntriesByKey方法,该方法返回一个NotesViewEntryCollection对象,然后可以用于迭代。

不要忘记回收生成的NotesViewEntry对象;在stackoverflow上已经多次解释了这个原因。