2012-04-03 56 views
1

手动调用操作我想从ActionListener按钮执行数据控制操作(CreateInsert和Delete)。我知道数据控件按钮可以从数据控件菜单插入,但出于各种原因,我需要这样做,突出的一个是我需要执行额外的运行时检查。ADF从代码

我发现下面的代码:

 OperationBinding operation = bindings.getOperationBinding("operation_name"); 
     operation.getParamsMap().put("parameter_name", parameterValue); 
     operation.execute(); 

但不知道用为自己的变量。首先,我不知道我应该使用哪种绑定。然后,就我所知,操作名称应该是CreateInsert,并且对于下一个按钮CreateInsert1。多数民众赞成什么现在用于UIBinding(我将删除)。

我想要使用的数据控件的操作是'ARNG1'。

因此总之,我需要知道如何手动调用这个Data控件的CreateInsert操作。

在此先感谢。

回答

1
+0

另一个非常有用的视频,但这几乎做别的。我已经有了一个操作按钮,我不想再添加其他操作,但想从代码中执行一个操作。然后,我将使用未绑定的按钮,因此我可以先运行我自己的自定义验证。 无论如何,谢谢! – 2012-04-03 19:58:34

+0

视频向您展示的是JDev如何创建用于在后台Bean中为您调用操作的代码。这样做,然后你可以从页面中删除按钮,并仍然有你的支持bean中的代码。然后您可以从bean中的另一个方法调用该代码,该方法绑定到您添加的新按钮。 – 2012-04-04 22:46:03

+0

* slaphead * 非常感谢,帮助我出色:)。 – 2012-04-05 19:46:28

1

代码要执行的ActionListener后面的操作:

 public BindingContainer getBindings() { 
      if (this.bindings == null) { 
       FacesContext fc = FacesContext.getCurrentInstance(); 
       this.bindings = (BindingContainer)fc.getApplication(). 
        evaluateExpressionGet(fc, "#{bindings}", BindingContainer.class); 
      } 
      return this.bindings; 
     } 

BindingContainer bindings = getBindings(); 
    OperationBinding operationBinding = 
    bindings.getOperationBinding("doQueryResultReset"); 
    operationBinding.execute(); 
1

乔的答案类似,但不使用EL表达式求值,并使用直接访问,而不是获取BindingContainer

//获取绑定容器 BindingContainer bindings = BindingContext.getCurrent()。getCurrentBindingsEntry();

//得到一个Action或MethodAction
OperationBinding method = bindings.getOperationBinding(“methodAction”);
method.execute();
List errors = method.getErrors();