Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在筛选的xpages视图中检索列值_Xpages - Fatal编程技术网

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

在筛选的xpages视图中检索列值,xpages,Xpages,我在xpage上定义了一个视图。我还有几个基于列的过滤器,用户可以选择并组合这些列来过滤视图中的结果。我基于此生成了一个查询字符串,我在dominoView.search中构造了该字符串并进行了完全刷新。我想做的是得到搜索结果,这样我就可以更新页面上其他地方显示的一些计数。不过,我很难弄清楚在哪里可以执行这种逻辑。我正在尝试使用view.getAllEntries,然后对集合进行迭代。有时它似乎有效,但有时我似乎得到了未经过滤的观点。有人建议我在PageLoad之前的某个事件中显式调用view.

我在xpage上定义了一个视图。我还有几个基于列的过滤器,用户可以选择并组合这些列来过滤视图中的结果。我基于此生成了一个查询字符串,我在dominoView.search中构造了该字符串并进行了完全刷新。我想做的是得到搜索结果,这样我就可以更新页面上其他地方显示的一些计数。不过,我很难弄清楚在哪里可以执行这种逻辑。我正在尝试使用view.getAllEntries,然后对集合进行迭代。有时它似乎有效,但有时我似乎得到了未经过滤的观点。有人建议我在PageLoad之前的某个事件中显式调用view.FTSearch?在执行getAllEntries调用之后,立即将结果保存在viewScope中,但在浏览Notes时出错,尝试执行此操作时出现运行时错误。有什么建议吗?蒂亚

编辑:在对xpages生命周期进行了一些研究之后,我认为我可以对我的问题进行微调。这是我的第一个stackoverflow问题,所以我希望这是可以做到的,并且富有成效

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

我希望这现在更有意义


编辑2:我忘了添加一点,如果我在调用myView.getAllEntries之前手动调用FTSearch或FTSearchSorted,那么我认为我可以做到这一点。除了视图的内置搜索之外,似乎没有必要这样做。

从我得到的信息来看,您希望在之前已过滤的视图中迭代条目,即其结果条目集合小于视图本身

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

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


不要忘记回收得到的NotesViewEntry对象;原因已经在stackoverflow上解释了好几次。

是的,我想迭代过滤的条目。原因是我在左侧定义了几个潜在的过滤器,基本上与视图中的列相对应,用户可以选择其中的一个或多个来缩减结果。选择过滤器后,我想更新其他可用过滤器的匹配计数。我希望这是清楚的。列可能无法排序。PS是xpages的新手,因此我不清楚页面生命周期以及过滤视图的内容何时可以查询。谢谢所以你在考虑某种向下搜索过滤?使用标准视图过滤方法可能会变得非常复杂;view.getAllEntries、view.getAllEntriesByKey等实际上与LotusScript的等价物做着相同的事情。因此,如果你熟悉经典的LS开发,那么你应该知道你能获得什么,以及如何处理结果。实际上,我也是一个缺乏经验的经典Notes开发人员。我的背景是更多的java,perl,C++等等。无论如何,谢谢你;正如我在另一篇评论中提到的,主要问题可能只是不知道何时将搜索筛选器应用于视图以及何时可以安全地获取视图的条目。如果这些条目逐渐消失,则还有一个细节很抱歉:我正在根据所选的筛选器为视图的搜索属性构建查询字符串,例如,[a]包含blah和[B]包含foo。这一部分看起来很简单。FTSearch和FTSearchSorted都修改了视图对象,只有当数据库没有全文索引时,才按原始视图顺序排序,否则,它将按相关性排序。FTSearch修改视图o
对象使用单个查询,而FTSearchSorted允许使用单个查询或查询向量。因此,您可以使用FTSearchSorted来组合多个查询。我最初的尝试涉及调用javascript中的view.getAllEntries,该javascript附加到组合框中,向用户显示可用的过滤器。我实际上在迭代文档,检索与组合框过滤器相关联的字段值,对它们进行排序,并计算放入参数中的每个值的计数。例如,这很像你在亚马逊看到的分面搜索。如果用户选择了第二个过滤器,我似乎得到了整个未过滤的视图,因此感觉需要了解何时执行视图的搜索并在那里插入代码。