2012-04-03 25 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();