adf内联编辑第一行的SelectionListener

时间:2014-07-01 12:18:59

标签: java oracle-adf jdeveloper

我在oracle adf(jdeveloper)中有一个融合Web应用程序。

我在其中有一个内联编辑表。如果用户离开当前行,我想允许autocommit。因此,如果用户导航到另一行,则必须自动保存上一行中所做的更改。

为此,我将table的SelectionListener属性设置为:

#{DisDocT.myCustomSelectionListener}

我写了代码:

public void myCustomSelectionListener(SelectionEvent selectionEvent)
{
    System.out.println("In myCustomSelectionListener");
    if(isDirty()) {
        cb4_action();//Commits the changes
    }
    MyUtils.invokeMethodExpression("#{bindings.MyView2.collectionModel.makeCurrent}", Object.class, SelectionEvent.class, selectionEvent);
}

如果表有多行要迭代,上面的代码可以正常工作。但是当表只有一行或新创建的行时,它就不起作用。

任何建议都将受到赞赏。(或者是否有任何其他方式可以在adf中实现内联编辑)

1 个答案:

答案 0 :(得分:2)

正如您应该注意到的那样,使用选择侦听器时,仅当所选行发生更改时才会触发事件。因此,如果您选择相同的行,或者类似于您的情况,此时您只有一行,它不会被触发。这就是它的工作方式。
我的建议是更改事件类型以应用更改(执行提交操作)。一个值得注意的用例是在行上使用 双击 进行操作。查看以下示例:Handle double-click in tableTrigger action with double click。它可以很容易地实现并保持用户交互更简单(想象一下,如果用户开始玩行并连续更改它们,它每次都会调用支持bean方法)。