【问题标题】:XPages ftsearch results for combobox fields组合框字段的 XPages ftsearch 结果
【发布时间】:2014-09-18 16:22:43
【问题描述】:

我在以前的应用程序中创建了一个简单的 FTsearch 模块,在 viewPanel1 中显示结果。

但是,现在在其他应用程序中它让我头疼。视图中的search 代码:

var tmpArray = new Array("");
var cTerms = 0; 

if (sessionScope.searchFurnizor) { 
tmpArray[cTerms++] = "(Field txt_particontractcv_1 = \"*" + sessionScope.searchFurnizor + "*\")"; 
} 


if (sessionScope.searchStare) { 
tmpArray[cTerms++] = "(Field txt_stadiucontrcv = \"*" + sessionScope.searchStare + "*\")"; 
}

qstring = tmpArray.join(" AND ").trim(); 
sessionScope.queryString = qstring; 
return qstring

txt_particontractcv_1 是一个简单的 inputText,txt_stadiucontrcv 是一个复选框:

  <xp:checkBoxGroup id="checkBoxGroup1" value="#{Contr.txt_stadiucontrcv}" defaultValue="In derulare">
            <xp:selectItem itemLabel="In derulare" itemValue="In derulare"
                                id="selectItem1">
            </xp:selectItem>
            <xp:selectItem itemLabel="Finalizat" itemValue="Finalizat"
                                        id="selectItem2">
            </xp:selectItem>
    </xp:checkBoxGroup>

提交搜索的按钮正在对viewPanel1 进行部分刷新。尽管如此,即使搜索中有符合过滤条件的文档,它也会返回 0 个结果。

后期编辑:从 FTsearch 模块中一一删除字段后,我想我发现了问题:问题出在文档内容中的组合框(我的情况)字段上,但也在 FTsearch 模内。 FTsearch 中的组合框代码:

<xp:checkBoxGroup id="checkBoxGroup1" value="#{sessionScope.searchStare}">
    <xp:selectItem itemLabel="In derulare" itemValue="In derulare" id="selectItem1">
    </xp:selectItem>
    <xp:selectItem itemLabel="Finalizat" itemValue="Finalizat" id="selectItem2">
    </xp:selectItem>
</xp:checkBoxGroup>

另外,我注意到 inputField(s) 必须是 inputText,我尝试使用一些组合框作为输入字段,但不起作用。

【问题讨论】:

    标签: xpages xpages-ssjs


    【解决方案1】:

    您是在部分刷新中刷新视图还是在视图外的面板中刷新? 因为如果您刷新视图,您可能永远不会更新搜索查询。如果是这样,请在视图之外添加一个 xp:panel 或 xp:div 并对其进行部分刷新。

    【讨论】:

    • 谢谢,我会尝试您的建议,但在其他应用程序中,视图不在 panel/div 上,并且搜索结果显示正确。
    • 我试过了,结果一样。嗯,我猜我的代码一定有问题。
    • 按照 Paul 的建议获取搜索字符串并在笔记中的同一视图中尝试
    【解决方案2】:

    当全文搜索无法按预期进行时,我的建议始终是打印出搜索字符串。然后尝试在 Notes 客户端的视图中执行搜索。

    如果它在客户端的视图中不起作用,尝试在 XPage 中解决它不会让它起作用。 Notes 客户端会告诉您原因,通常是“无法理解查询”,您可以使用 Notes 搜索栏中的按钮来解决原因,该按钮会告诉您哪些字段可用以及 UNK 表认为它们是什么数据类型。

    如果它确实有效,那么您的 XPage 中的某个地方存在问题。

    与以往一样,将其分解以尝试找出问题所在 - 在本例中是全文搜索功能或在 XPages 中的实现。

    【讨论】:

    • 我注意到 inputField(s) 必须是 inputText,我尝试使用一些组合框作为输入字段,但不起作用。
    • 请确认搜索查询在 Notes 客户端视图中是否有效
    • 在笔记客户端中,我也没有得到任何结果,使用组合框作为搜索查询的输入字段。不过,我没有收到任何“无法理解查询”的消息。
    • 您是打印查询并将其粘贴到 Notes 客户端的搜索栏中,还是在 Notes 客户端中打开 XPage?我的要求是打印您的代码构建的查询,将其粘贴到 Notes 客户端数据库视图中的搜索栏中并检查结果。搜索栏不允许您添加组合框或输入字段,只是沿着 FIELD firstName = "Test" 行的搜索查询
    • 我现在明白了。我会试试的,我从来没有这样做过,希望能解决它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多