XPages View onClick 模态对话框显示

XPages View onClick Modal Dialog Show

当我使用客户端功能单击视图中的文档时,我可以打开标准 Xpages (.xsp)。但是我已经创建了 HTML 模态对话框,然后我只想在单击 ViewPanel 中的文档时打开模态对话框。下面的代码只允许显示我希望显示的模态对话框。我工作正常。我想要做的只是打开与文档的对话框。 RowAttrs 属于 ViewPanel

<!-- This is the Code to open modal Dialog -->
<xp:this.rowAttrs> <xp:attr name="onClick">
<xp:this.value><![CDATA[#{javascript:try 
{
    var curDoc:NotesDocument = viewEntry.getDocument();
    var aPath=sessionScope.pathDBName;       
    return "$('#modal_theme_custom').modal('show');"; 
  //return "OpenModal('show', 'modal_theme_custom','" + curDoc.getUniversalID().toString() + "');";
} 
catch(e)
{
     print(e.toString()); 
     
}   
}]]></xp:this.value>
</xp:attr>
</xp:this.rowAttrs>

我已经创建了一个函数来打开带有文档的模式,但我无法成功。 这是功能。如果我可以用这个函数打开对话框,我可以通过 DocumentUniqueID 然后打开它。我可以发送整个对话代码...

function OpenModal(mode, modalName, unid) 
{ 
    var action = ""; 
    var windowName = ""; 
    
    var documentId = (unid != null) ?  + unid : ""; 
    var URLSuffix = "";  
    var noteWebLink = "$('#" + modalName + "').modal('" + mode + "');"; 
    return noteWebLink;
}

更新

使用 xe:dialog 作为模态对话框的主要容器,并通过寻址其 id(下面的 id="dialog1")来打开或关闭它。在其中创建 xp:panel 并定义您的数据源。您可以使用 xe:dialogContent 和 xe:dialogButtonBar 来组织对话框的其余内容。

<xe:dialog id="dialog1" title="Dialog title appears at top">
    <xp:panel>
        <xp:this.data>
            <xp:dominoDocument var="document1" formName="CustomerForm" ignoreRequestParams="true" action="editDocument">
                <xp:this.documentId><![CDATA[#{javascript:
                     // ssjs to return documentid or noteid, 
                 }]]></xp:this.documentId>
            </xp:dominoDocument>
        </xp:this.data>
        <xe:dialogContent id="dialogContent1">
            <xp:table>
                <xp:tr>
                    <xp:td>
                        <xp:label value="Address:" id="address_Label1" for="address1">
                        </xp:label>
                    </xp:td>
                    <xp:td>
                        <xp:inputText value="#{document1.Address}" id="address1" >
                        </xp:inputText>
                    </xp:td>
                </xp:tr>
                <xp:tr>
                    <xp:td>
                        <xp:label value="City:" id="city_Label1" for="city1">
                        </xp:label>
                    </xp:td>
                    <xp:td>
                        <xp:inputText value="#{document1.City}" id="city1" >
                        </xp:inputText>
                    </xp:td>
                </xp:tr>
            </xp:table>
        </xe:dialogContent>
        <xe:dialogButtonBar id="dialogButtonBar1">
            <xp:button value="Close Dialog" id="button1">
                <xp:eventHandler event="onclick" submit="false">
                    <xp:this.script><![CDATA[XSP.closeDialog("#{id:dialog1}");]]> 
                    </xp:this.script>
                </xp:eventHandler>
            </xp:button>
        </xe:dialogButtonBar>
    </xp:panel>
</xe:dialog>

可以使用csjs打开和关闭:

  XSP.openDialog("#{id:dialog1}");
  XSP.closeDialog("#{id:dialog1 }" );

或者使用ssjs:

 getComponent("dialog1").show();
 getComponent("dialog1").hide();