使用 NotesViewEntryCollection 作为重复控件的数据源 - 需要一种方法来显示标签或计算字段中的值
Using a NotesViewEntryCollection as a datasource for a repeat control - need a method to display the value in a label or computed field
我正在使用以下内容作为 xpage 重复控件的数据源:
var extDB = session.getDatabase("","Position.nsf");
var emailNVCollection:NotesViewEntryCollection = extDB.getView("PrincipalEmails").getAllEntries();
return emailNVCollection
我知道语法是正确的因为回答了:Making a viewEntryCollection an objectDataSource
我想不通的是如何在计算字段中显示值。我尝试使用表达式语言进行简单绑定:rowHandle.fieldname。还有几种不同的 javascript 方法,例如我通过多次搜索找到的 rowHandle.getColumnValue。他们都是 return 各种错误。对于 javascript,我认为我尝试过的方法对 NotesViewEntryCollections 无效。表达式语言方法 returns:从 lotus.domino.local.ViewEntry 类型的 bean 获取 属性 'fieldname' 时出错。
这是实际来源:
<xp:panel style="margin-left:10.0px;margin-top:10.0px">
<xp:repeat id="repeat1" rows="30" var="rowHandle">
<xp:this.value><![CDATA[#{javascript:var extDB = session.getDatabase("","Position.nsf");
var emailNVCollection:NotesViewEntryCollection = extDB.getView("PrincipalEmails").getAllEntries();
return emailNVCollection}]]></xp:this.value>
<xp:text escape="true" id="computedField1"
value="#{rowHandle.posd_email}">
</xp:text>
</xp:repeat></xp:panel></:view>
我想这应该很简单。照常。
---丽莎&
您有一个 NotesViewEntryCollection
作为重复值。
然后每个 rowHandle
都是 class NotesViewEntry 的实例。
您可以使用 getDocument() 访问文档的项目。
rowHandle.getDocument().getItemValueString("yourItemName")
你的例子是
<xp:text escape="true" id="computedField1"
value="#{javascript: rowHandle.getDocument().getItemValueString('posd_email')>
</xp:text>
不过,如果像本例中的第一列一样使用 view's column values,性能会更好:
rowHandle.getColumnValues().firstElement().toString()
你不会想要那样做的。除了违反 MVC 范例之外,您已经在呼吁性能问题。
虽然仍然以错误的方式摩擦 MVC 范例,但 XPages 使您能够摆脱底层数据库对象并使用它们的对应包装器(在本例中为 ViewEntry
到 DominoViewEntry
) .
您必须首先定义您的数据源(通常在页面开头声明):
<xp:this.data>
<xp:dominoView var="principalEmails" databaseName="Position.nsf"
viewName="PrincipalEmails" />
</xp:this.data>
然后你在重复控件中引用数据源:
<xp:repeat id="repeatPrincipalEmails" value="#{principalEmails}" var="principalEmail">
<xp:text value="#{principalEmail.posd_email}" />
</xp:repeat>
只要您在点后定义的值对应于列编程名称 - 如果不涉及公式,该名称会自动匹配字段名称 - 您可以引用视图中存在的任何列。
如果您需要引用不在视图中的任何其他字段,您可以做的最好的事情是避免访问 domino 文档对象本身,而是添加包含您需要的字段的另一列
我正在使用以下内容作为 xpage 重复控件的数据源:
var extDB = session.getDatabase("","Position.nsf");
var emailNVCollection:NotesViewEntryCollection = extDB.getView("PrincipalEmails").getAllEntries();
return emailNVCollection
我知道语法是正确的因为回答了:Making a viewEntryCollection an objectDataSource
我想不通的是如何在计算字段中显示值。我尝试使用表达式语言进行简单绑定:rowHandle.fieldname。还有几种不同的 javascript 方法,例如我通过多次搜索找到的 rowHandle.getColumnValue。他们都是 return 各种错误。对于 javascript,我认为我尝试过的方法对 NotesViewEntryCollections 无效。表达式语言方法 returns:从 lotus.domino.local.ViewEntry 类型的 bean 获取 属性 'fieldname' 时出错。
这是实际来源:
<xp:panel style="margin-left:10.0px;margin-top:10.0px">
<xp:repeat id="repeat1" rows="30" var="rowHandle">
<xp:this.value><![CDATA[#{javascript:var extDB = session.getDatabase("","Position.nsf");
var emailNVCollection:NotesViewEntryCollection = extDB.getView("PrincipalEmails").getAllEntries();
return emailNVCollection}]]></xp:this.value>
<xp:text escape="true" id="computedField1"
value="#{rowHandle.posd_email}">
</xp:text>
</xp:repeat></xp:panel></:view>
我想这应该很简单。照常。 ---丽莎&
您有一个 NotesViewEntryCollection
作为重复值。
然后每个 rowHandle
都是 class NotesViewEntry 的实例。
您可以使用 getDocument() 访问文档的项目。
rowHandle.getDocument().getItemValueString("yourItemName")
你的例子是
<xp:text escape="true" id="computedField1"
value="#{javascript: rowHandle.getDocument().getItemValueString('posd_email')>
</xp:text>
不过,如果像本例中的第一列一样使用 view's column values,性能会更好:
rowHandle.getColumnValues().firstElement().toString()
你不会想要那样做的。除了违反 MVC 范例之外,您已经在呼吁性能问题。
虽然仍然以错误的方式摩擦 MVC 范例,但 XPages 使您能够摆脱底层数据库对象并使用它们的对应包装器(在本例中为 ViewEntry
到 DominoViewEntry
) .
您必须首先定义您的数据源(通常在页面开头声明):
<xp:this.data>
<xp:dominoView var="principalEmails" databaseName="Position.nsf"
viewName="PrincipalEmails" />
</xp:this.data>
然后你在重复控件中引用数据源:
<xp:repeat id="repeatPrincipalEmails" value="#{principalEmails}" var="principalEmail">
<xp:text value="#{principalEmail.posd_email}" />
</xp:repeat>
只要您在点后定义的值对应于列编程名称 - 如果不涉及公式,该名称会自动匹配字段名称 - 您可以引用视图中存在的任何列。
如果您需要引用不在视图中的任何其他字段,您可以做的最好的事情是避免访问 domino 文档对象本身,而是添加包含您需要的字段的另一列