Oracle adf在树上选择OneChoice重置表滚动



在点击编辑模式下,树表中的selectOneChoice出现问题。向下滚动并向上返回时,将清除聚焦行的组合值。要复制此问题,只需导航到ADF演示:单击编辑树表

  1. 全部展开
  2. 选择第一行
  3. 将Col2的值更改为HeadPhone
  4. 焦点仍在第一行,向下滚动,直到出现Fetching Data消息
  5. 向上滚动回第一行
  6. Col2的值更改为Mouse

我该如何避免这种情况?在我的应用程序中,我注意到第一次在更改值时触发了值更改侦听器,第二次在滚动treeTable时触发,将其设置为空

只有树表处于编辑状态时才会出现此问题模式单击编辑。标准表工作正常。

我的jdev是11.1.2.1.0。

提前Thx。

由于您能够在ADF演示中重现此问题,这要么是ADF错误,要么是限制。

我认为这是一种错误。您可以尝试在其上提交服务请求。
这似乎是因为你没有提交你的更改(因为你仍然停留在这一行)。在另一次获取时,您的更改不会被保存,而在重新获取时,则会获得旧值
关于此问题的解决方法:

  1. 如果树不是太大,可以将迭代器RangeSize设置为-1以一次获取所有行,从而避免获取更多行。然而,如果你有很多争吵,你就会遇到性能问题
  2. 您可以尝试将此字段上的autosubmit属性设置为true,这样它将在comback上保存您的数据(并有望加载)(即使没有,您也可以在bean中执行)。当您的控制失去焦点时,您可能还需要放置clientListener来提交数据
  3. 不要对此控件使用clickToEdit或将其称为功能(无提交-无更改):)

由于我等不及修复,我找到了解决问题的方法。当元素在向后滚动时第二次渲染时,该值被设置为null(对于复选框为false),因为调用了bean的setter属性和selectOneChoice的值更改(如果存在)。因此,我在valueChange事件上设置了一个clientListener,与valueChangeListener不同,它被正确地激发,并将一个伪属性设置为value。

最新更新