Xpages 搜索视图时如果没有结果,则显示消息

Xpages 搜索视图时如果没有结果,则显示消息,xpages,Xpages,我读了这个 这与我想问的非常相似。然而,我试图用那篇文章的解决方案来解决我的问题,但没有成功。我意识到我不能在那个帖子里提问。所以我会在这里发布我的代码。(请注意,如果不适合创建新帖子,请将其删除) 在应用程序中,用户可以进行搜索,当用户单击按钮时,它会将用户重定向到结果页面 <?xml version="1.0" encoding="UTF-8"?> <xp:view xmlns:xp="http://www.ibm.com/xsp/core"> <xp:this

我读了这个 这与我想问的非常相似。然而,我试图用那篇文章的解决方案来解决我的问题,但没有成功。我意识到我不能在那个帖子里提问。所以我会在这里发布我的代码。(请注意,如果不适合创建新帖子,请将其删除)

在应用程序中,用户可以进行搜索,当用户单击按钮时,它会将用户重定向到结果页面

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<xp:this.data>
    <xp:dominoDocument var="document1"></xp:dominoDocument>
</xp:this.data>

<xp:text escape="true" id="computedField1" style="margin-left:200.0px">     </xp:text>
<xp:br></xp:br>
<xp:viewPanel id="viewPanel4" viewStyle="width:600.0px;background- color:rgb(255,255,255);margin-left:200.0px" rows="15">
    <xp:this.data>
        <xp:dominoView var="view4"
            viewName="OfficerDepLoc">
            <xp:this.search><![CDATA[#{javascript:var qstring= "";
if ((sessionScope.officerSearch != null && sessionScope.officerSearch != "")|| (sessionScope.depSearch != null && sessionScope.depSearch != "")|| (sessionScope.locSearch != null && sessionScope.locSearch !=""))
{   
    qstring = " ( FIELD officer contains " + sessionScope.officerSearch  + " & FIELD department contains" + sessionScope.depSearch + "& FIELD location contains" + sessionScope.locSearch + ")";
}
var db:NotesDatabase = session.getDatabase("",  "myapplication.nsf", false)
var dc:NotesDocumentCollection = db.getAllDocuments();
if (dc.getCount() == 0) 
{
    qstring =   getComponent("computedField1").setValue("After search, there is no record found");
}

return qstring;
}]]></xp:this.search>
        </xp:dominoView>
    </xp:this.data>
    <xp:viewColumn columnName="Officer" id="viewColumn11">
        <xp:viewColumnHeader value="officer " id="viewColumnHeader11" sortable="true">
        </xp:viewColumnHeader>
    </xp:viewColumn>
    <xp:viewColumn columnName="Department" id="viewColumn12">
        <xp:viewColumnHeader value="department" id="viewColumnHeader12" sortable="true">
        </xp:viewColumnHeader>
    </xp:viewColumn>
    <xp:viewColumn columnName="Location" id="viewColumn13">
        <xp:viewColumnHeader value="location" id="viewColumnHeader13" sortable="true">
        </xp:viewColumnHeader>
    </xp:viewColumn>
    <xp:this.facets>

        <xp:pager partialRefresh="true" layout="Previous Group Next" xp:key="footerPager" id="pager5">
        </xp:pager>
    </xp:this.facets></xp:viewPanel>
</xp:view>    
在结果页面中,有一个计算字段和一个视图。如果在搜索后的视图中没有结果,则computed字段用于显示消息。如果结果与用户的条件匹配,视图将显示结果

当结果与用户选择匹配时,视图工作正常,但如果没有结果与用户选择匹配,则仅显示视图列标题。因此,我想使用一个计算字段来显示一条消息,通知用户搜索功能已执行,并且没有结果返回。否则,用户将不知道他们的搜索没有结果返回

这是结果页面的代码

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<xp:this.data>
    <xp:dominoDocument var="document1"></xp:dominoDocument>
</xp:this.data>

<xp:text escape="true" id="computedField1" style="margin-left:200.0px">     </xp:text>
<xp:br></xp:br>
<xp:viewPanel id="viewPanel4" viewStyle="width:600.0px;background- color:rgb(255,255,255);margin-left:200.0px" rows="15">
    <xp:this.data>
        <xp:dominoView var="view4"
            viewName="OfficerDepLoc">
            <xp:this.search><![CDATA[#{javascript:var qstring= "";
if ((sessionScope.officerSearch != null && sessionScope.officerSearch != "")|| (sessionScope.depSearch != null && sessionScope.depSearch != "")|| (sessionScope.locSearch != null && sessionScope.locSearch !=""))
{   
    qstring = " ( FIELD officer contains " + sessionScope.officerSearch  + " & FIELD department contains" + sessionScope.depSearch + "& FIELD location contains" + sessionScope.locSearch + ")";
}
var db:NotesDatabase = session.getDatabase("",  "myapplication.nsf", false)
var dc:NotesDocumentCollection = db.getAllDocuments();
if (dc.getCount() == 0) 
{
    qstring =   getComponent("computedField1").setValue("After search, there is no record found");
}

return qstring;
}]]></xp:this.search>
        </xp:dominoView>
    </xp:this.data>
    <xp:viewColumn columnName="Officer" id="viewColumn11">
        <xp:viewColumnHeader value="officer " id="viewColumnHeader11" sortable="true">
        </xp:viewColumnHeader>
    </xp:viewColumn>
    <xp:viewColumn columnName="Department" id="viewColumn12">
        <xp:viewColumnHeader value="department" id="viewColumnHeader12" sortable="true">
        </xp:viewColumnHeader>
    </xp:viewColumn>
    <xp:viewColumn columnName="Location" id="viewColumn13">
        <xp:viewColumnHeader value="location" id="viewColumnHeader13" sortable="true">
        </xp:viewColumnHeader>
    </xp:viewColumn>
    <xp:this.facets>

        <xp:pager partialRefresh="true" layout="Previous Group Next" xp:key="footerPager" id="pager5">
        </xp:pager>
    </xp:this.facets></xp:viewPanel>
</xp:view>    

因此,如果搜索没有结果,我想知道如何显示消息?非常感谢。

可能是这样的吗

<xp:panel id="refreshPanel">
    <xp:viewPanel id="viewPanel4" rendered="getComponent("viewPanel4").getRowCount()>0">
    viewpanel columns
    </xp:viewPanel>
    <xp:panel id="noentriesPanel" rendered="getComponent("viewPanel4").getRowCount()==0">
    text no entries
    </xp:panel>
    </xp:panel>

视图面板列
文本无条目

Franks的答案会奏效,但我只是想把我个人的方法也加入其中。我总是在我的视图面板上计算文本,计算出类似“Your search”[searchTerm]“returned[getCount]documents”的内容。这样,我只需要呈现一个视图面板,如果搜索为空,文本会告诉用户有0个文档,如果返回文档,用户一眼就能看到视图中有多少文档。