弹出窗口中的xpages搜索模

弹出窗口中的xpages搜索模,xpages,xpages-ssjs,xpages-extlib,Xpages,Xpages Ssjs,Xpages Extlib,在您的帮助下,我使用FTsearch和export-into-Excel功能创建了一个Xpage。问题是搜索是基于多个输入字段进行的(比如说>10)。xpage的文本量很大,考虑到还有一个视图面板,单击搜索按钮后,我会在其中列出搜索结果 这就是我尝试创建(单击搜索和导出的链接后)一些弹出对话框(我想它包含一个xpage)和这个弹出对话框的主要原因,该对话框包含我的所有输入字段+已经创建的两个按钮:搜索和导出。因此,当我从我的弹出窗口中按下搜索按钮=>后,弹出对话框关闭,搜索结果显示在视图面板中,

在您的帮助下,我使用FTsearch和export-into-Excel功能创建了一个Xpage。问题是搜索是基于多个输入字段进行的(比如说>10)。xpage的文本量很大,考虑到还有一个视图面板,单击搜索按钮后,我会在其中列出搜索结果

这就是我尝试创建(单击搜索和导出的
链接后)一些弹出对话框(我想它包含一个xpage)和这个弹出对话框的主要原因,该对话框包含我的所有输入字段+已经创建的两个按钮:搜索和导出。因此,当我从我的弹出窗口中按下搜索按钮=>后,弹出对话框关闭,搜索结果显示在视图面板中,Excel按钮的情况也一样:弹出窗口关闭,我打开Excel文件

当前,当我单击
链接以搜索和导出
时,我“看到”了搜索的所有输入面板(所有输入字段+两个按钮),当然还有视图面板。它确实可以工作,但我认为弹出式对话框将更加用户友好,并为xpage提供更多空间

我要做的是:将所有输入字段+
搜索
导出到excel
按钮移动到一个对话框中,该对话框应在单击链接时显示

如何创建一个对话框,该对话框在单击链接时打开,并包含下面的此面板(其中包含FTsearch的所有输入字段和按钮)

包含输入字段和“搜索和导出”按钮的面板的我的代码:

<xp:panel style="background-color:rgb(242,242,242);border-color:rgb(168,168,168);border-width:thin;border-style:solid">
    <xp:table><xp:tr><xp:td><xp:label value="Din" id="label3" style="font-size:8pt;font-family:Verdana;color:rgb(128,0,0)">
                </xp:label></xp:td>
            <xp:td><xp:inputText id="inputText1" value="#{sessionScope.searchDate1}">
                    // some extra code
                </xp:label></xp:td>
            <xp:td></xp:td>
            <xp:td>
                <xp:inputText id="inputText2" value="#{sessionScope.searchDate2}">
                // some extra code
                </xp:inputText></xp:td>
        </xp:tr>
        <xp:tr>
            <xp:td>
                <xp:label value="Author" id="label1"
                    style="font-size:8pt;font-family:Verdana;color:rgb(128,0,0)">
                </xp:label>
                </xp:td>
            <xp:td>
                <xp:inputText id="searchAutor"
                    value="#{sessionScope.searchAutor}">
                </xp:inputText>
            </xp:td>
            <xp:td></xp:td>
            <xp:td></xp:td>
        </xp:tr>
        <xp:tr>
            <xp:td style="font-family:Verdana;font-size:8pt">
                <xp:label id="label2" value="Titlu carte"
                    style="color:rgb(128,0,0);font-size:8pt;font-family:Verdana">
                </xp:label>
            </xp:td>
            <xp:td>
                <xp:inputText id="searchTitlu"
                    value="#{sessionScope.searchTitlu}">
                </xp:inputText>
            </xp:td>
            <xp:td></xp:td>
            <xp:td></xp:td>
        </xp:tr>
        <xp:tr>
            <xp:td>
                <xp:button value="Search" id="button6"
                    styleClass="lotusFormButton">
                    <xp:eventHandler event="onclick" submit="true"
                        refreshMode="complete" immediate="false" save="true"
                        id="eventHandler1">
                    </xp:eventHandler>
                </xp:button>
            </xp:td>
            <xp:td>
                <xp:text escape="true" id="computedField1"
                    rendered="false">
                    <xp:this.value><![CDATA[#{javascript:return "Query = " + sessionScope.queryString}]]></xp:this.value>
                </xp:text>
            </xp:td>
            <xp:td></xp:td>
            <xp:td>
                <xp:button value="Export" id="button1"
                    styleClass="lotusFormButton" style="float:right;">
                    <xp:eventHandler event="onclick" submit="true"
                        refreshMode="complete" immediate="false" save="true"
                        id="eventHandler2">
                        <xp:this.action>
                            <xp:openPage
                                name="/export_hidden.xsp">
                            </xp:openPage>
                        </xp:this.action>
                    </xp:eventHandler>
                </xp:button></xp:td>
        </xp:tr>
    </xp:table></xp:panel>

//一些额外的代码
//一些额外的代码

非常感谢您的时间。

下面是一个对话框示例,您可以在其中添加字段:

<xe:dialog id="exampleDialog" title="Example dialog">
    <xp:div styleClass="lotusDialogContent">
        <!-- Add your table here -->
    </xp:div>
    <div class="lotusDialogFooter">
        <!-- 
          add your buttons here
        -->

        <!-- example cancel link -->
        <xp:link id="link1" text="Cancel" styleClass="lotusAction">
            <xp:eventHandler event="onclick" submit="false">
                <xp:this.script><![CDATA[XSP.closeDialog('#{id:exampleDialog}')]]></xp:this.script>
            </xp:eventHandler>
        </xp:link>
    </div>
</xe:dialog>
或者像这样使用客户端JS:

XSP.openDialog("#{id:exampleDialog}")

也可以完全使用扩展库设置内容栏和按钮栏区域的样式。您的对话框将如下所示:

getComponent("exampleDialog").show();
<xe:dialog id="exampleDialog">
    <xe:dialogContent id="dialogContent1">
        <!-- content here -->
    </xe:dialogContent>
    <xe:dialogButtonBar id="dialogButtonBar1">
        <!-- buttons here -->
    </xe:dialogButtonBar>
</xe:dialog>


下面是一个按钮示例,您可以在对话框中使用该按钮关闭对话框并刷新同一XPage上的viewpanel(假设viewpanel称为“viewpanel1”):



加载页面后,可以使用XSP.addOnLoad()打开对话框。将此添加到您的XPage:

<xp:scriptBlock id="scriptBlock1">
    <xp:this.value><![CDATA[
        XSP.addOnLoad(function(){
            XSP.openDialog("#{id:exampleDialog}")
        });
    ]]></xp:this.value>
</xp:scriptBlock>


您的具体问题是什么?如何创建对话框?@PerHenrikLausten如何创建包含我所有输入的对话框并在单击链接时显示它将对话框放入自定义控件中,创建自定义属性并将其传递给该控件。您能给我一个示例吗?我已经用为自定义控件创建的代码更新了我的问题,该控件包含FT搜索的输入字段和按钮谢谢。-应该声明到XPage的源中,在那里我使用链接显示它?或者在您添加到XPage的自定义控件中。没有绑定“xe:dialog”的“xe”元素。是的,因为您没有拖放对话框控件。因此XPages源XML不知道xe是什么。将xmlns:xe=”“添加到xp:view标记(或将扩展库控件拖放到XPage)感谢您的耐心等待。我的链接代码:facesContext.getExternalContext().redirect(“);getComponent(“exampleDialog”).show();-->我转到该xpage,但对话框未显示。
<xp:scriptBlock id="scriptBlock1">
    <xp:this.value><![CDATA[
        XSP.addOnLoad(function(){
            XSP.openDialog("#{id:exampleDialog}")
        });
    ]]></xp:this.value>
</xp:scriptBlock>