用于打开xe:对话框的xpage ssjs代码不会打开对话框,而是将文档模式从编辑更改为读取

时间:2014-04-03 20:23:44

标签: xpages xpages-extlib xpages-ssjs

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

如果删除第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>

1 个答案:

答案 0 :(得分:0)

你确定这是因为“document1.isEditable()”而不是因为你的陈述中的所有其他部分吗?

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

<xp:this.rendered><![CDATA[#{javascript: document1.isEditable() }]]></xp:this.rendered>

按钮几乎可见。