Xpage打开带有哈希的URL

时间:2013-08-21 08:53:20

标签: url xpages lotus

我有两个Xpages,一个包含重复控件。单击某个条目时,应打开第二个Xpage。我使用链接控制来执行此操作:

<xp:link escape="true" text="" id="link1"
value="/Xpage1.xsp?documentId=#{javascript:FA_Row.getDocument().getUniversalID()}">

... complex values to display...

</xp:link>

该链接将打开以下网址:

http://www.serverName.de/path/Xpage1.xsp#/path/Xpage2.xsp?documentID=xxx

当URL以这种方式打开时,XPage2中的所有事件处理程序都不会触发。如果我手动打开文档,使用以下URL,一切正常。

http://www.serverName.de/path/Xpage2.xsp?documentID=xxx

如何告诉我的重复控件在没有“Xpage1.xsp#”的情况下打开URL?


以下是重复控件的完整代码,如请求:)这是一个分类视图,使用jQuery Mobile进行格式化。

<xp:repeat id="contactRepeat" rows="30"
    value="#{MForApproval}" var="FA_Row" disableOutputTag="true">

<xp:scriptBlock
    rendered="#{javascript:FA_Row.getNoteID()==''}">
    <li data-role="list-divider" data-dividertheme="b">

        ...Category Text...
    </li>
</xp:scriptBlock>

<xp:scriptBlock 
    rendered="#{javascript:FA_Row.getNoteID()!=''}">

    <li>
        <xp:link escape="true" text="LINK" id="link1"
            value="Button_test_1.xsp?documentId=#{javascript:FA_Row.getDocument().getUniversalID()}">

            ...TEXT...

        </xp:link>

    </li>

</xp:scriptBlock>

</xp:repeat>

3 个答案:

答案 0 :(得分:0)

您需要以这种方式设置链接的网址:

<xp:link escape="true" text="" id="link1">
    <xp:this.value><![CDATA[#{javascript:"/Xpage1.xsp?documentId=" + FA_Row.getDocument().getUniversalID()}]]></xp:this.value>

    ... complex values to display...

</xp:link>

答案 1 :(得分:0)

请尝试以下代码。

<xp:repeat id="contactRepeat" rows="30" 
value="#{MForApproval}" var="FA_Row" disableOutputTag="true">
    <xp:panel tagName="li" rendered="#{javascript:FA_Row.isCategory()}">
        <xp:this.attrs>
            <xp:attr name="data-role" value="list-divider" />
            <xp:attr name="data-dividertheme" value="b" />
        </xp:this.attrs>
        <xp:text tagName="h3" disableTheme="true" value="#{FA_Row.categoryCol}" />
    </xp:panel>
    <xp:panel tagName="li" rendered="#{javascript:FA_Row.isDocument()}">
        <a href="Xpage1.xsp?documentId=#{javascript:FA_Row.getUniversalID()}">
            <xp:text value="#{FA_Row.ColName}" disableTheme="true" />
        </a>
    </xp:panel>
</xp:repeat>

您只需更新<xp:text>标记内的列名称。

答案 2 :(得分:0)

我尝试了你的Code和Naveen的版本。在我的例子中,两个都在工作。您可以尝试使用简单事件或脚本事件将用户重定向到其他XPage,如下所示:

    <xp:link escape="true" text="linkName" id="link2"
        value="">
    <xp:eventHandler event="onclick" submit="true" refreshMode="complete">
        <xp:this.action>
            <xp:openPage name="xpage1.xsp" target="openDocument">
                <xp:this.documentId><![CDATA[#{javascript:FA_Row.getDocument().getUniversalID();
}]]></xp:this.documentId>
            </xp:openPage>
        </xp:this.action>
    </xp:eventHandler>
    </xp:link>

注意:如果您使用事件双重检查value=""