我在xpage中构建了一个搜索功能,用户可以从列表框和组合框中选择值,ftsearch查询由这些值组成。因此,当我更改组合框的值时,会触发onChange事件并发生对结果视图的部分更新。问题是视图根据onChange之前的组合框的先前值显示结果。这就像视图中的结果总是一个变化。
我在事件中添加了try / catch,但没有发生异常。这似乎是一种非常奇怪的行为。以前有没有人经历过这样的事情?
我很感激任何想法和方向,因为我现在被问到可能出现的问题。
提前多多感谢!
答案 0 :(得分:2)
我只是以一种非常简单的方式给了它一个镜头,它对我有用。这就是我所拥有的:
使用以下代码为viewPanel创建计算搜索属性:
requestScope.get( “FTS”);
在视图面板上创建一个comboBox(上图)
在我的情况下,我在视图中有一个测试文档,主题字段的值为“sub 1”,“sub 2”,...,“sub 6”。所以我让我的组合为我提供选项“1”......“6”。
如果我想更具体地使用我的ft搜索字符串,我可以在viewPanel的搜索属性中构建它(步骤4):
if(requestScope.containsKey("fts") && requestScope.get("fts")!=""){
"Sub " + requestScope.get("fts");
}
就是这样 - 有效。
如果我的问题出错,请告诉我们。在这种情况下,您需要更具体地了解您到目前为止要做的事情以及您尝试过的事情。
修改强>
在你的评论后,我在我的组合中添加了一个listBox。我看到listBox本身并没有做任何坏事,但我当然要注意两者不要互相攻击。所以这就是我要解决的问题:
(改变组合:)
requestScope.remove("ftsList");
(onchange of list :)
requestScope.remove("ftsCombo");
最终将视图的计算搜索属性更改为:
if(requestScope.containsKey("ftsCombo") && requestScope.get("ftsCombo")!=""){
return "Sub " + requestScope.get("ftsCombo");
}
if(requestScope.containsKey("ftsList") && requestScope.get("ftsList")!=""){
return "Sub " + requestScope.get("ftsList");
}
所以现在我可以使用组合或列表来应用过滤器