Xpages 是否仅显示当前视图中的未读文档?

Xpages 是否仅显示当前视图中的未读文档?,xpages,xpages-ssjs,Xpages,Xpages Ssjs,有人建议在XPages ViewPanel中实现@Command([ViewShowOnlyUnread])吗 如果可以实现“下一个未读”和“Previus未读”功能,请尝试将其值属性设置为以下表达式,而不是将视图面板绑定到标准视图数据源: importPackage(com.ibm.xsp.model.domino); var targetView = database.getView("Some View"); var unreadEntries = targetView.getAllUnr

有人建议在XPages ViewPanel中实现@Command([ViewShowOnlyUnread])吗


如果可以实现“下一个未读”和“Previus未读”功能,请尝试将其值属性设置为以下表达式,而不是将视图面板绑定到标准视图数据源:

importPackage(com.ibm.xsp.model.domino);
var targetView = database.getView("Some View");
var unreadEntries = targetView.getAllUnreadEntries();
var unreadModel = new DominoViewEntryCollectionDataModel(unreadEntries);
return unreadModel;

然后,视图面板的行为应与绑定到真实数据源时完全相同,但仅显示未读条目。

与其将视图面板绑定到标准视图数据源,不如尝试将其值属性设置为以下表达式:

importPackage(com.ibm.xsp.model.domino);
var targetView = database.getView("Some View");
var unreadEntries = targetView.getAllUnreadEntries();
var unreadModel = new DominoViewEntryCollectionDataModel(unreadEntries);
return unreadModel;

然后,视图面板的行为应与绑定到真实数据源时完全相同,但只显示未读条目。

来自Tim的精彩回答

这是另一个带有重复控件的版本-

    <xp:repeat id="repeatUnreadEntries" var="viewEntry" indexVar="index" rows="30">
    <xp:this.value><![CDATA[#{javascript: return database.getView('viewName').getAllUnreadEntries()}]]></xp:this.value>
    <xp:this.facets>
        <xp:panel id="repeatHeader" xp:key="header">
            <xp:text disableTheme="true" escape="false">
                <xp:this.value>
                    <![CDATA[<TABLE><THEAD><TH>Cell1</TH><TH>Cell2</TH></THEAD><TBODY>]]>
                </xp:this.value>
            </xp:text>
        </xp:panel>
        <xp:panel id="repeatFooter" xp:key="footer">
            <xp:text disableTheme="true" escape="false">
                <xp:this.value><![CDATA[</TBODY></TABLE>]]></xp:this.value>
            </xp:text>
        </xp:panel>
    </xp:this.facets>
    <TR>
        <xp:repeat var="entryColVal" indexVar="colIndex" value="#{javascript:viewEntry.getColumnValues()}">
            <TD>
                <xp:text value="#{entryColVal}" />
            </TD>
        </xp:repeat>
    </TR>
</xp:repeat>

单元格1单元格2]]>
]]>

蒂姆的回答非常好

这是另一个带有重复控件的版本-

    <xp:repeat id="repeatUnreadEntries" var="viewEntry" indexVar="index" rows="30">
    <xp:this.value><![CDATA[#{javascript: return database.getView('viewName').getAllUnreadEntries()}]]></xp:this.value>
    <xp:this.facets>
        <xp:panel id="repeatHeader" xp:key="header">
            <xp:text disableTheme="true" escape="false">
                <xp:this.value>
                    <![CDATA[<TABLE><THEAD><TH>Cell1</TH><TH>Cell2</TH></THEAD><TBODY>]]>
                </xp:this.value>
            </xp:text>
        </xp:panel>
        <xp:panel id="repeatFooter" xp:key="footer">
            <xp:text disableTheme="true" escape="false">
                <xp:this.value><![CDATA[</TBODY></TABLE>]]></xp:this.value>
            </xp:text>
        </xp:panel>
    </xp:this.facets>
    <TR>
        <xp:repeat var="entryColVal" indexVar="colIndex" value="#{javascript:viewEntry.getColumnValues()}">
            <TD>
                <xp:text value="#{entryColVal}" />
            </TD>
        </xp:repeat>
    </TR>
</xp:repeat>

单元格1单元格2]]>
]]>

如果您将数据和值属性设置为查看面板,则Tim提供的代码有效,如下所示

<xp:viewPanel rows="30" id="viewPanel1">
    <xp:this.facets>
        <xp:pager partialRefresh="true" layout="Previous Group Next" xp:key="headerPager" id="pager1"></xp:pager>
    </xp:this.facets>
    <xp:this.data>
        <xp:dominoView var="view1" viewName="vwSrc"></xp:dominoView>
    </xp:this.data>
    <xp:this.value><![CDATA[#{javascript:importPackage(com.ibm.xsp.model.domino);
var targetView = database.getView("vwSrc");
var unreadEntries = targetView.getAllUnreadEntries();
var unreadModel = new DominoViewEntryCollectionDataModel(unreadEntries);
return unreadModel();}]]></xp:this.value>
        <xp:viewColumn columnName="col1" id="viewColumn1">
            <xp:viewColumnHeader value="Column1" id="viewColumnHeader1"></xp:viewColumnHeader>
        </xp:viewColumn>
</xp:viewPanel>

如果您将数据和值属性设置为查看面板,则Tim提供的代码有效,如下所示

<xp:viewPanel rows="30" id="viewPanel1">
    <xp:this.facets>
        <xp:pager partialRefresh="true" layout="Previous Group Next" xp:key="headerPager" id="pager1"></xp:pager>
    </xp:this.facets>
    <xp:this.data>
        <xp:dominoView var="view1" viewName="vwSrc"></xp:dominoView>
    </xp:this.data>
    <xp:this.value><![CDATA[#{javascript:importPackage(com.ibm.xsp.model.domino);
var targetView = database.getView("vwSrc");
var unreadEntries = targetView.getAllUnreadEntries();
var unreadModel = new DominoViewEntryCollectionDataModel(unreadEntries);
return unreadModel();}]]></xp:this.value>
        <xp:viewColumn columnName="col1" id="viewColumn1">
            <xp:viewColumnHeader value="Column1" id="viewColumnHeader1"></xp:viewColumnHeader>
        </xp:viewColumn>
</xp:viewPanel>



对于显示未读文档,我使用dojo.jquery()--------------dojo.query(.xspDataTable tr”).forEach(函数(node,index,arr){if(node.className.indexOf(“xspDataTableRowUnread”)=-1{node.className+=“lotusHidden”}控制台(node.className)};------------但是对于显示未读文档的下一个未读和预览未读函数,我使用dojo.jquery()-------------------dojo.query(.xspDataTable tr”).forEach(函数(node,index,arr){if(node.className.indexOf(“xspDataTableRowUnread”)=-1{node.className+=“lotusHidden”}console.log(node.className)}------------但是没有关于下一个未读和预览未读函数的任何内容。这是一个很好的观点,Tim,但是…我如何插入您的代码,以便当我点击按钮时可以切换数据源?Tnx您经常在静态模式下尝试代码,但会生成以下错误:执行JavaScript计算表达式脚本解释器时出错错误,行=5,列=8:找不到java公共构造函数'com.ibm.xsp.model.domino.DominoViewEntryCollectionDataModel()'我已使用return(unreadModel)更改了最后一行;但在我看来,你的解决方案似乎行不通。。。VAR变量未通过正确的类并出错。。。我不知道,嗯,提姆,但是…我怎样才能插入你的代码,这样当我点击按钮时,就可以切换到datasouces?Tnx您经常在静态模式下尝试代码,但会生成以下错误:执行JavaScript计算表达式脚本解释器时出错错误,行=5,列=8:找不到java公共构造函数'com.ibm.xsp.model.domino.DominoViewEntryCollectionDataModel()'我已使用return(unreadModel)更改了最后一行;但在我看来,你的解决方案似乎行不通。。。VAR变量未通过正确的类并出错。。。我不知道我不知道为什么…但在我的场景中,如果我剪切并粘贴代码…我会看到vwSrc包含所有条目。。。我使用8.5.3FP2服务器和设计器…您是否也修改了数据属性和值属性中的视图名称??。除此之外,我没有看到任何问题……是的……数据属性中的名称和值属性是相同的……您是否尝试过代码,并且在您的场景中工作得很好?我尝试过,并且工作得很好。如果你对这段代码仍然有问题,你可以使用我的答案中提供的重复控件。Tnx你,但我不能使用重复控件,我的视图有不同的分类,而且更复杂,因为有缩进和响应文档等。。。现在我用一个简单的视图来尝试这个测试。TnxI不知道为什么…但在我的场景中,如果我剪切并粘贴代码…我会看到vwSrc包含所有条目。。。我使用8.5.3FP2服务器和设计器…您是否也修改了数据属性和值属性中的视图名称??。除此之外,我没有看到任何问题……是的……数据属性中的名称和值属性是相同的……您是否尝试过代码,并且在您的场景中工作得很好?我尝试过,并且工作得很好。如果你对这段代码仍然有问题,你可以使用我的答案中提供的重复控件。Tnx你,但我不能使用重复控件,我的视图有不同的分类,而且更复杂,因为有缩进和响应文档等。。。现在我用一个简单的视图来尝试这个测试。Tnx