用户在应用程序中导航时,自定义控件中的数据未得到维护



我的应用程序使用应用程序控件。在控件本身的右栏中,我放置了另一个显示用户信息的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将解决您的问题。

最新更新