Xpages onChange事件don'的部分更新;无法获得正确的值
我在xpage中构建了一个搜索函数,用户可以从列表框和组合框中选择值,ftsearch查询由这些值组成。因此,当我更改组合框的值时,将触发onChange事件,并对结果视图进行部分更新。问题是视图根据onChange之前组合框的上一个值显示结果。就好像视图中的结果总是落后一个变化 我向事件中添加了try/catch,但没有发生异常。这似乎是一种非常奇怪的行为。以前有人经历过类似的事情吗 我会很感激任何想法和方向,因为我现在被困在问题可能是什么Xpages onChange事件don'的部分更新;无法获得正确的值,xpages,onchange,Xpages,Onchange,我在xpage中构建了一个搜索函数,用户可以从列表框和组合框中选择值,ftsearch查询由这些值组成。因此,当我更改组合框的值时,将触发onChange事件,并对结果视图进行部分更新。问题是视图根据onChange之前组合框的上一个值显示结果。就好像视图中的结果总是落后一个变化 我向事件中添加了try/catch,但没有发生异常。这似乎是一种非常奇怪的行为。以前有人经历过类似的事情吗 我会很感激任何想法和方向,因为我现在被困在问题可能是什么 提前多谢 我只是用一种非常简单的方式尝试了一下,它对
提前多谢 我只是用一种非常简单的方式尝试了一下,它对我很有效。以下是我所拥有的:
在你的评论之后,我在我的组合中添加了一个列表框。我看到listBox本身并没有做什么坏事,但我当然要注意,这两个东西不会互相妨碍。下面是我为解决这个问题所做的:
if(requestScope.containsKey("ftsCombo") && requestScope.get("ftsCombo")!=""){
return "Sub " + requestScope.get("ftsCombo");
}
if(requestScope.containsKey("ftsList") && requestScope.get("ftsList")!=""){
return "Sub " + requestScope.get("ftsList");
}
因此,现在我可以使用组合或列表来应用过滤器您是否可以创建一个示例XPage并发布代码。要详细了解Simon的注释:如何将ftsearch字符串传递到视图的搜索属性中?您使用的是视图面板吗?是的,我使用的是视图面板,我将ftsearch字符串传递给它的search属性。ftsearch字符串由从列表框和组合框中获取值组成@SimonO'Doherty恐怕代码很复杂,很容易从这里读取。不需要完整的代码。尝试在空白nsf中创建一个示例,看看会发生什么。这是在将提交的值应用于模型之前使用存储值时的常见问题。JSF生命周期中的更多信息。您可以尝试获取“提交的值”而不是“值”。或者改变你的搜索方式,看起来你的搜索顺序不对。谢谢你的时间和帮助!我用一个列表框、一个组合框和一个视图创建了一个新的xpage。我的问题似乎发生在有列表框的时候,而不仅仅是组合框。我认为问题与@Frantisek Kossuth在上述评论中所说的有关。因为当我将列表框添加到xpage时,我似乎总是在onChange事件之前获得值。再次感谢!我试试看。目前我没有使用示波器。例如,我使用combo1.getValue()获取值。也许这就是问题所在。好吧,我想这就是原因。用望远镜给它一次机会顺便说一句:我把两个字段控件都放在更新的面板之外;但是,如果你把它放在里面,你很可能甚至不需要像我那样删除变量(我编辑的版本中的步骤6);我想这两种方法都有各自的优点。我试过你的方法,直到现在它都能奏效,我第一种方法遇到的问题不再出现。非常感谢你!似乎使用示波器更好。
requestScope.remove("ftsList");
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");
}