当用户在应用程序中导航时,不会维护自定义控件中的数据

时间:2014-09-24 19:36:11

标签: xpages

我的应用程序使用Application Control。在控件本身的右栏中,我放了另一个显示用户信息的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>

1 个答案:

答案 0 :(得分:3)

您需要设置ignoreRequestParams =&#34; true&#34;。由于未设置,因此在没有在URL中传递文档的XPage上,它会显示您定义的文档。在您打开,编辑或创建文档的页面上,documentId等会被URL参数中的内容覆盖,这就解释了为什么您没有看到您期望的文档。自定义控件中数据源上的ignoreRequestParams将解决您的问题。