Xpages 打开xe:dialog的xpage ssjs代码不会打开dialog,而是将文档模式从编辑更改为读取

Xpages 打开xe:dialog的xpage ssjs代码不会打开dialog,而是将文档模式从编辑更改为读取,xpages,xpages-extlib,xpages-ssjs,Xpages,Xpages Extlib,Xpages Ssjs,我的Xpage有五个工作流部分。第1节提交按钮工作正常。 对于第二部分的submit按钮,我使用ssjs调用xe:dialog box来获取一些用户inut,它确实打开了xe:dialog box。但原始文档现在处于读取模式,提交按钮不可见 如果删除第1节,第2节按钮将打开对话框,并且不会更改原始文档的文档模式 下面是带有对话框和按钮的xpage的示例代码 <?xml version="1.0" encoding="UTF-8"?> <xp:view xmlns:xp=

我的Xpage有五个工作流部分。第1节提交按钮工作正常。 对于第二部分的submit按钮,我使用ssjs调用xe:dialog box来获取一些用户inut,它确实打开了xe:dialog box。但原始文档现在处于读取模式,提交按钮不可见

如果删除第1节,第2节按钮将打开对话框,并且不会更改原始文档的文档模式

下面是带有对话框和按钮的xpage的示例代码

<?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"
    dojoTheme="true"
    dojoParseOnLoad="true">
    <xp:this.resources>
        <xp:dojoModule
            name="dijit.Dialog"></xp:dojoModule>
        <xp:dojoModule
            name="dijit.form.Button"></xp:dojoModule>
        <xp:dojoModule
            name="dijit.form.TextBox"></xp:dojoModule>
    </xp:this.resources>
    <xp:br></xp:br>
    <xp:this.data>
        <xp:dominoDocument
            var="document1"
            formName="MetalWorking">
        </xp:dominoDocument>
    </xp:this.data>
    <xp:panel>
        <xp:panel>

            &#160;
            <xp:button
                value="Lab Man Approval"
                id="button4">
                <xp:this.rendered><![CDATA[#{javascript:document1.isEditable() & (document1.getItemValueDate("Section1DateCompleted")!=null) & (document1.getItemValueDate("Section2DateCompleted") == null)
}]]></xp:this.rendered>
                <xp:eventHandler
                    event="onclick"
                    submit="true"
                    refreshMode="complete"
                    immediate="false"
                    save="true">
                    <xp:this.action>
                        <xp:executeScript>
                            <xp:this.script><![CDATA[#{javascript:var d=getComponent('dialog2');
d.show();}]]></xp:this.script>
                        </xp:executeScript>
                    </xp:this.action>
                </xp:eventHandler>
            </xp:button>
            &#160; &#160;<xp:br></xp:br>
            <xe:dialog
                id="dialog2">
                <xp:panel
                    style="background-color:rgb(226,226,226)">
                    <xp:table>
                        <xp:tr>
                            <xp:td>
                                <xp:label
                                    value="Response"
                                    id="responseArea_Label1"
                                    for="responseArea1">
                                </xp:label>
                            </xp:td>
                            <xp:td>
                                <xp:inputText
                                    id="responseArea1">
                                </xp:inputText>
                            </xp:td>
                        </xp:tr>
                    </xp:table>
                </xp:panel>
            </xe:dialog>
        </xp:panel>
    </xp:panel>
    <xp:table>
        <xp:tr>
            <xp:td>
                <xp:label
                    value="Doc history:"
                    id="docHistory_Label1"
                    for="docHistory1">
                </xp:label>
            </xp:td>
            <xp:td>
                <xp:inputText
                    value="#{document1.DocHistory}"
                    id="docHistory1">
                </xp:inputText>
            </xp:td>
        </xp:tr>
    </xp:table>
</xp:view>

你确定这是因为document1.i可编辑,而不是因为if-your语句中的所有其他部分吗

如果我像那样修改你的渲染代码


按钮几乎是可见的。

你不能期望人们浏览你的700多行代码。请将您的代码示例缩减为理解您的问题所需的内容。此问题似乎与主题无关,因为它有太多的代码供人们浏览。当文档处于编辑模式时,会显示此按钮。它调用xe:dialog,并在xe:dialog关闭document1时调用。isEditable=false。添加了onComplete事件对话框按钮,以单击父按钮上的编辑按钮,该按钮正在工作。但后来我意识到,在父xpage上的调用按钮中执行其余代码是没有帮助的。理想情况下,对话框保存按钮应关闭对话框,并将控制权转移回调用按钮。可能吗?