我的应用程序使用应用程序控件。在控件本身的右栏中,我放置了另一个显示用户信息的CC。
这个想法是,当用户在整个应用程序中移动时,他们总是会看到这些信息。
数据显示在第一个视图上,但不以任何形式显示。
数据显示在视图中,但不显示在表单中,即使我能够在一个字段中检索文档unid。
自定义控件的代码如下。
如有任何帮助,我们将不胜感激。
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"
xmlns:xe="http://www.ibm.com/xsp/coreex">
<xp:this.data>
<xp:dominoDocument var="document1" action="openDocument"
databaseName="TheTruth.nsf" formName="employee">
<xp:this.documentId><![CDATA[#{javascript:var userName:NotesName = session.createName(session.getEffectiveUserName());
var db:NotesDatabase = session.getDatabase(database.getServer(), "DATABASE.nsf");
var viewHandle = db.getView("(ViewName)");
var doc:NotesDocument = viewHandle.getDocumentByKey(userName.toString());
return doc.getUniversalID();}]]></xp:this.documentId>
</xp:dominoDocument>
</xp:this.data>
<xp:panel id="pnlHeader"
style="width:275.00px;padding-right:30.0px">
<xe:widgetContainer id="widgetContainerHeader">
<xp:panel style="padding-top:8.0px;padding-bottom:8.0px">
<xp:table>
<xp:tr>
<xp:td>
<xe:djTextBox id="djTextBox1"
style="width:97.0%;font-weight:bold;font-size:18pt"
value="#{document1.HR_FullName}">
</xe:djTextBox>
</xp:td>
</xp:tr>
<xp:tr>
<xp:td>
<xe:djTextBox id="djTextBox2"
style="width:97.0%" value="#{document1.HR_MarketSegmentText}">
</xe:djTextBox>
</xp:td>
</xp:tr>
<xp:tr>
<xp:td>
<xe:djTextBox id="djTextBox3"
style="width:97.0%">
<xe:this.value><![CDATA[#{javascript:"Blank"}]]></xe:this.value>
</xe:djTextBox>
</xp:td>
</xp:tr>
<xp:tr>
<xp:td>
<xe:djTextBox id="djTextBox4"
style="width:97.0%">
<xe:this.value><![CDATA[#{javascript:var userName:NotesName = session.createName(session.getEffectiveUserName());
var db:NotesDatabase = session.getDatabase(database.getServer(), "DATABASE.nsf");
var viewHandle = db.getView("ViewName");
var doc:NotesDocument = viewHandle.getDocumentByKey(userName.toString());
return doc.getUniversalID();}]]></xe:this.value>
</xe:djTextBox>
</xp:td>
</xp:tr>
<xp:tr>
<xp:td>
<xe:djTextBox id="djTextBox5"
style="width:97.0%">
<xe:this.value><![CDATA[#{javascript:"Blank"}]]></xe:this.value>
</xe:djTextBox>
</xp:td>
</xp:tr>
<xp:tr>
<xp:td>
<xe:djTextBox id="djTextBox6"
style="width:97.0%">
<xe:this.value><![CDATA[#{javascript:"Blank"}]]></xe:this.value>
</xe:djTextBox>
</xp:td>
</xp:tr>
<xp:tr>
<xp:td>
<xe:djTextBox id="djTextBox7"
style="width:97.0%">
<xe:this.value><![CDATA[#{javascript:"Blank"}]]></xe:this.value>
</xe:djTextBox>
</xp:td>
</xp:tr>
<xp:tr>
<xp:td>
<xe:djTextBox id="djTextBox8"
style="width:97.0%" value="#{document1.HR_OfficePhone}">
</xe:djTextBox>
</xp:td>
</xp:tr>
<xp:tr>
<xp:td>
<xe:djTextBox id="djTextBox9"
style="width:97.0%" value="#{document1.HR_CellPhone}">
</xe:djTextBox>
</xp:td>
</xp:tr>
<xp:tr>
<xp:td>
<xe:djTextBox id="djTextBox10"
style="width:97.0%" value="#{document1.HR_DirectDial}">
</xe:djTextBox>
</xp:td>
</xp:tr>
</xp:table>
</xp:panel>
</xe:widgetContainer>
</xp:panel>
</xp:view>
您需要设置ignoreRequestParams="true"。因为没有设置,所以在URL中没有传递文档的XPage上,它显示您定义的文档。在打开、编辑或创建文档的页面上,documentId等会被URL参数中的内容覆盖,这就解释了为什么你看不到期望的文档。自定义控件中数据源上的ignoreRequestParams将解决您的问题。