Xpages dataContext能否返回NotesViewEntry集合?

Xpages dataContext能否返回NotesViewEntry集合?,xpages,xpages-ssjs,Xpages,Xpages Ssjs,这是我之前在 我有一个Go按钮,它从一个字段中获取一个值并返回一个viewEntryCollection,这样我就可以在dataContext中计算它了。我将此添加到我的页面: <xp:this.dataContexts> <xp:dataContext var="veCol"> <xp:this.value><![CDATA[#{javascript:var vw:NotesView = database

这是我之前在

我有一个Go按钮,它从一个字段中获取一个值并返回一个viewEntryCollection,这样我就可以在dataContext中计算它了。我将此添加到我的页面:

    <xp:this.dataContexts>
        <xp:dataContext var="veCol">
            <xp:this.value><![CDATA[#{javascript:var vw:NotesView = database.getView("vwCompanies");
var thisVeCol:NotesViewEntryCollection = vw.getAllEntriesByKey(viewScope.get("vsCompany"),false);
if (thisVeCol.getCount() == 0){
    //get back to the page don't pass veCol probably need to do more than this
    return "";
}else{
    //the repeat is not rendered if false Go button does a partial refreash on the panelRepeat
    //think it will need to a partial refresh on this dataContext as well
    viewScope.put("vsDisplayRepeat", true);
    return thisVeCol;
}}]]></xp:this.value>
        </xp:dataContext>
    </xp:this.dataContexts>


是和否。除了代码中的一个bug(您在早期的“getCount”之后缺少“()”)——我相信当前表单的计算结果总是错误的,因为它将一个类(我认为)与0进行比较,但是谁知道使用SSJS呢?),该代码可能会实现您所期望的

然而,它可能会比您预期的要频繁得多,这对您的页面速度有很大的损害#{}绑定的数据上下文在页面求值期间被求值多次。svenhasselbach对此进行了非常详细的讨论(),结果是,一个正常加载的页面使用一次它将计算三次,刷新可能是十一次


${}绑定的DataContext没有这个问题,因为每个XPage只对它们求值一次,但它们确实会遇到您描述的序列化问题。您最好的选择可能是切换到使用带有
类别过滤器的
数据源,或者,如果由于某种原因而不可行,则将视图中的条目数据预读入
列表中(使用OpenNTF API会更容易)。如果您使用后者,请注意
DateTime
s.

是和否。除了代码中的一个bug(您在“getCount”之后很早就丢失了“()”)——我相信当前表单的计算结果总是错误的,因为它将一个类(我认为)与0进行比较,但谁知道使用SSJS呢?),该代码可能会达到您的预期效果

然而,它可能会比您预期的要频繁得多,这对您的页面速度有很大的损害#{}绑定的数据上下文在页面求值期间被求值多次。svenhasselbach对此进行了非常详细的讨论(),结果是,一个正常加载的页面使用一次它将计算三次,刷新可能是十一次


${}绑定的DataContext没有这个问题,因为每个XPage只对它们求值一次,但它们确实会遇到您描述的序列化问题。您最好的选择可能是切换到使用带有
类别过滤器的
数据源,或者,如果由于某种原因而不可行,则将视图中的条目数据预读入
列表中(使用OpenNTF API会更容易)。如果您使用后者,请注意
DateTime
s.

是和否。除了代码中的一个bug(您在“getCount”之后很早就丢失了“()”)——我相信当前表单的计算结果总是错误的,因为它将一个类(我认为)与0进行比较,但谁知道使用SSJS呢?),该代码可能会达到您的预期效果

然而,它可能会比您预期的要频繁得多,这对您的页面速度有很大的损害#{}绑定的数据上下文在页面求值期间被求值多次。svenhasselbach对此进行了非常详细的讨论(),结果是,一个正常加载的页面使用一次它将计算三次,刷新可能是十一次


${}绑定的DataContext没有这个问题,因为每个XPage只对它们求值一次,但它们确实会遇到您描述的序列化问题。您最好的选择可能是切换到使用带有
类别过滤器的
数据源,或者,如果由于某种原因而不可行,则将视图中的条目数据预读入
列表中(使用OpenNTF API会更容易)。如果您使用后者,请注意
DateTime
s.

是和否。除了代码中的一个bug(您在“getCount”之后很早就丢失了“()”)——我相信当前表单的计算结果总是错误的,因为它将一个类(我认为)与0进行比较,但谁知道使用SSJS呢?),该代码可能会达到您的预期效果

然而,它可能会比您预期的要频繁得多,这对您的页面速度有很大的损害#{}绑定的数据上下文在页面求值期间被求值多次。svenhasselbach对此进行了非常详细的讨论(),结果是,一个正常加载的页面使用一次它将计算三次,刷新可能是十一次


${}绑定的DataContext没有这个问题,因为每个XPage只对它们求值一次,但它们确实会遇到您描述的序列化问题。您最好的选择可能是切换到使用带有
类别过滤器的
数据源,或者,如果由于某种原因而不可行,则将视图中的条目数据预读入
列表中(使用OpenNTF API会更容易)。如果您使用后者,请注意
DateTime
s.

jesse-感谢您在本例中使用domino视图实际输入,并将“键”传递给DominoView。我可以使用getAllDocumentsBy键来确定点击量。如果有0,则返回消息“None Found”,如果==1,则打开该文档进行输入,如果>1,则显示重复。然而,我有另一个例子,在这个例子中,能够传递viewEntryCollection是非常好的。因为选择需要用户输入一些信息,所以我想我可以使用${}绑定的dataContext并进行重新加载页面,重新计算dataContext oncs。在大多数情况下,简单的解决方案是最好的解决方案。将重复绑定到DominoView,第一列按公司排序,然后添加按列筛选,并将其设置为viewScope vsCompany。用户输入公司名称的前几个字符并按下Go按钮。“开始”按钮会对“重复”进行部分刷新。在我的Go按钮中,如果dc.getCount()==0返回消息,我将执行getAllDocumentsByKey(key,false),如果==1打开文档如果大于1设置viewScope.vsShowRepeat=true,则执行刷新。快速氯离子