2012-04-03 13 views
1

ボタンのActionListenerからデータ制御操作(CreateInsertおよびDelete)を実行したいとします。 Data Controlメニューからデータコントロールボタンを挿入することができますが、さまざまな理由から、このようにする必要があります。これは、ランタイムチェックを余分に実行する必要があることです。ADFコードから手動で操作を呼び出す

私は、次のコードが見つかりました:

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

をしかし、自分のために使用する変数を知りません。まず第一に、どのバインディングを使うべきか分かりません。次に、操作名は、私が知る限り、CreateInsertであり、次のボタンではCreateInsert1です。 UIBindingに使用されているもの(これを削除します)

操作を使用したいデータコントロールは 'ARNG1'です。

要するに、このDataコントロールのCreateInsert操作を手動で呼び出す方法を知る必要があります。

ありがとうございます。

答えて

1

これはあなたを助けるかどうかを確認してください: https://blogs.oracle.com/shay/entry/doing_two_declarative_operatio

+0

もう1つの非常に有用なビデオですが、これは他にも何かします。私はすでに操作ボタンを持っていますが、別の操作を追加するのではなく、コードから操作を実行したいと思います。代わりにアンバインドされたボタンを使用するので、私は独自のカスタム検証を最初に実行できます。 ありがとうございました! –

+0

ビデオが表示する内容は、JDevがバッキングBeanで操作を呼び出すためのコードを作成する方法です。そうすれば、ページからボタンを削除して、バッキングBeanでコードを利用できるようにすることができます。追加した新しいボタンに関連する別のメソッドからそのコードを呼び出すことができます。 –

+0

* slaphead * 大変お世話になりました。 –

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();

//アクションまたはメソッドアクションを取得
OperationBindingメソッド= bindings.getOperationBinding( "methodAction");
method.execute();
リストerrors = method.getErrors();

関連する問題