0

まず、ページで、ボタンのテキストが「編集」に設定されて表示されます。

「編集」ボタンをクリックすると、ボタンのテキストが「完了」に変わりますが、その間、ページにいくつかのチェックボックスをレンダリングするアクションが実行されます。

チェックボックスを選択して「完了」ボタンをクリックすると、別のアクションが実行されます。

ADF Mobile での方法がわかりません。この 1 つのボタンを使用してこれらすべてを実行できますか?

ありがとう!


私は 2 つのボタンを使用することにしました。これが私のコードです。

  <amx:facet name="secondary">
  <amx:commandButton id="cb2" text="#{viewcontrollerBundle.EDIT}" rendered="#{viewScope.editMode == ''}">
    <amx:setPropertyListener id="spl1" from="EditMode" to="#{viewScope.editMode}" type="action"/>
  </amx:commandButton>
  <amx:commandButton id="cb3" text="#{viewcontrollerBundle.DONE}" rendered="#{viewScope.editMode == 'EditMode'}">
    <amx:actionListener id="al1" binding="#{bindings.removeFromImageList.execute}"/>
    <amx:setPropertyListener id="spl2" from="" to="#{viewScope.editMode}" type="action"/>
  </amx:commandButton>
</amx:facet>

このコードは、編集ボタンをクリックしたときに DONE ボタンを表示できます。そして私のテストページでは、それは機能します。しかし、それらをプロジェクト ページに配置すると、すぐに [DONE] ボタンが表示されません。前のページに戻り、もう一度ページに戻ると、[DONE] ボタンが表示されます。なぜなのかご存知ですか?

4

1 に答える 1

0

同じボタンでできます。ボタンのテキスト フィールドの値を Bean のプロパティとして設定できます。また、同じ Bean の関数であるアクション リスナーでは、テキストに基づいてさまざまなアクションを実行できます。

AMXページは次のようになります

<amx:commandButton text="{applicationScope.myBean.buttonText}" id="cb3" styleClass="actions-button" actionListener="#{applicationScope.myBean.myListener}"></amx:commandButton>

Bean は次のようになります。

public class Class1 {
    private PropertyChangeSupport propertyChangeSupport = new PropertyChangeSupport(this);

    public Class1() {
        super();
    }

    private String textButton;

    public void myListener(ActionEvent ae) {
        if (textButton.equals("Edit")) {
            //DO THE ACTION WHICH NEEDS TO BE DONE FOR EDIT BUTTON
            setTextButton("Done");
        } else if (textButton.equals("Done")) {
            //DO THE ACTION FOR DONE BUTTON
        }
    }

    public void setTextButton(String textButton) {
        String oldTextButton = this.textButton;
        this.textButton = textButton;
        propertyChangeSupport.firePropertyChange("textButton", oldTextButton, textButton);
    }

    public String getTextButton() {
        return textButton;
    }

    public void addPropertyChangeListener(PropertyChangeListener l) {
        propertyChangeSupport.addPropertyChangeListener(l);
    }

    public void removePropertyChangeListener(PropertyChangeListener l) {
        propertyChangeSupport.removePropertyChangeListener(l);
    }
}
于 2014-08-07T05:39:45.280 に答える