Xpages 是否仅显示当前视图中的未读文档?
有人建议在XPages ViewPanel中实现@Command([ViewShowOnlyUnread])吗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
如果可以实现“下一个未读”和“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