Просмотр XPages при нажатии на модальное диалоговое окно Показать - PullRequest
0 голосов
/ 05 августа 2020

Я могу открыть стандартные Xpages (.xsp), когда я нажимаю на документ в поле зрения с помощью функции ClientSide. Но я создал модальный диалог 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;
}

ОБНОВЛЕНИЕ введите описание изображения здесь

1 Ответ

0 голосов
/ 14 августа 2020

Используйте xe: dialog в качестве основного контейнера для вашего модального диалога и откройте или закройте его, указав его идентификатор (id = "dialog1" ниже). Внутри нее создайте панель xp: и определите свой источник данных. Вы можете использовать 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>

Вы можете открывать и закрывать с помощью cs js:

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

Или используйте ss js:

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