jsf2のテーブル内のselectonemenu

デジェル:

2つのselectOneMenuコンポーネントを含むテーブルがあります。

最初のselectOneMenuコンポーネントでレコードが選択されると、同じ行のAjaxで他のselectOneMenuが更新されます。

私のテーブル:

<p:dataTable value="#{myBean.myInfo}" var="myInfo">
    <p:column>
        <f:facet name="header">Group</f:facet>
        <h:selectOneMenu value="#{myInfo.myInfoType.code}">
            <f:selectItems value="#{myBean.myList}" />
            <f:ajax event="change" execute="@this" listener="#{myBean.refershNames}" render="myNames"/>
        </h:selectOneMenu>
    </p:column>
    <p:column>
        <f:facet name="header">Name</f:facet>
        <h:selectOneMenu id="myNames" value="#{myInfo.myInfoType.secondCode}">
            <f:selectItems value="#{myBean.mySecondList}" />
        </h:selectOneMenu>
    </p:column>
<p:dataTable>

豆で私は持っています:

List<SelectItem> myList,mySecondList;

public void refershNames(AjaxBehaviorEvent event){
    //how can I retrieve the selected item and update the relevant record?
}

Ajaxでそれを行うにはどうすればよいですか?JSF2を使用しています

BalusC:

で問題DataModel<E>myInfoオブジェクトを取得できるように、データテーブル値をラップしますDataModel#getRowData()そう、

DataModel<MyInfo> myInfoModel; // +getter

@PostConstruct
public void init() {
    myInfo = myInfoDAO.list();
    myInfoModel = new ListDataModel<MyInfo>(myInfo);
}

<h:dataTable value="#{myBean.myInfoModel}" var="myInfo">

そして

public void refreshNames(AjaxBehaviorEvent event){
    MyInfo myInfo = myInfoModel.getRowData();
    // Get code and update secondCode.
}

コメントに従って更新してください。ここでは、機能しないと言った後に作成したテストケースを示します。Tomcat 7.0.5とGlassfish 3.0.1の両方で、Mojarra 2.0.3を使用するとうまくいきました。

com.example.Item

public class Item {

    private String value1;
    private String value2;

    // Generate public getters/setters.    
}

com.example.Bean

@ManagedBean
@ViewScoped
public class Bean {

    private List<Item> items;
    private DataModel<Item> model;
    private List<String> list;

    @PostConstruct
    public void init() {
        items = Arrays.asList(new Item(), new Item(), new Item());
        model = new ListDataModel<Item>(items);
        list = Arrays.asList("one", "two", "three");
    }

    public void change(AjaxBehaviorEvent e) {
        Item item = model.getRowData();
        item.setValue2(item.getValue1());
    }

    public DataModel<Item> getModel() {
        return model;
    }

    public List<String> getList() {
        return list;
    }

}

test.xhtml

<h:form>
    <h:dataTable value="#{bean.model}" var="item">
        <h:column>
            <h:selectOneMenu value="#{item.value1}">
                <f:selectItem itemLabel="select..." itemValue="#{null}" />
                <f:selectItems value="#{bean.list}" />
                <f:ajax execute="@this" listener="#{bean.change}" render="list2" />
            </h:selectOneMenu>
        </h:column>
        <h:column>
            <h:selectOneMenu id="list2" value="#{item.value2}">
                <f:selectItem itemLabel="select..." itemValue="#{null}" />
                <f:selectItems value="#{bean.list}" />
            </h:selectOneMenu>
        </h:column>
    </h:dataTable>
</h:form>

このテストケースは、1列目のドロップダウン値を変更すると、同じ行の2列目のドロップダウン値が反映されて同じ値を取得することを証明しています。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

JSF2はインデックス行のデータテーブルを取得します

分類Dev

JSF2列挙型h:selectOneMenu

分類Dev

JSF2のXHTMLページでのJavascriptエラー

分類Dev

JSF2のバリデーターの問題

分類Dev

selectManyMenuトラブル内のp:selectOneMenu

分類Dev

JSF2の画像i18n

分類Dev

JSF2とJPAの双方向OneToMany

分類Dev

デカルト座標系でのJavaScript / JSF2データ(長方形)の視覚化

分類Dev

ajaxがJSF2のdatatable内から機能していません

分類Dev

Ajaxレンダー属性がJSF2のah:dataTableで機能しない

分類Dev

JSF2 カスタム コンポーネントの問題

分類Dev

JSF 2 ui:repeat:div内のnアイテムごとにグループ化

分類Dev

テーブル内のformControlName

分類Dev

共通テーブル式内の2つのテーブルのUNION&ORDER

分類Dev

アノテーションSpringAOP AspectJは、JSF2ビューで使用されるManaged Beanのメソッドでは機能しませんか?

分類Dev

テーブル内の2つの値をテーブルSQL内の別の値に一致させる

分類Dev

ビュー内のYii2バンドルテーブル

分類Dev

テーブル内の2つの値を確認します

分類Dev

PHP-テーブル内の2つの連想配列

分類Dev

foreach内のForeach、2つのテーブル、Knockout.js

分類Dev

SQL-同じテーブル内の2行の減算

分類Dev

シリアル通信デバイスをJSF2アプリケーションと統合するための戦略

分類Dev

シリアル通信デバイスをJSF2アプリケーションと統合するための戦略

分類Dev

ページ内の2つの別々のレスポンシブテーブル

分類Dev

テーブル内のwhileループ

分類Dev

JSF2ボタンの値はパラメーター化されていますか?

分類Dev

このHTMLテーブルをJSFテーブルに変換する方法

分類Dev

データテーブル内のAngularMaterial 2 routerlink

分類Dev

テーブル内の値の再配置

Related 関連記事

  1. 1

    JSF2はインデックス行のデータテーブルを取得します

  2. 2

    JSF2列挙型h:selectOneMenu

  3. 3

    JSF2のXHTMLページでのJavascriptエラー

  4. 4

    JSF2のバリデーターの問題

  5. 5

    selectManyMenuトラブル内のp:selectOneMenu

  6. 6

    JSF2の画像i18n

  7. 7

    JSF2とJPAの双方向OneToMany

  8. 8

    デカルト座標系でのJavaScript / JSF2データ(長方形)の視覚化

  9. 9

    ajaxがJSF2のdatatable内から機能していません

  10. 10

    Ajaxレンダー属性がJSF2のah:dataTableで機能しない

  11. 11

    JSF2 カスタム コンポーネントの問題

  12. 12

    JSF 2 ui:repeat:div内のnアイテムごとにグループ化

  13. 13

    テーブル内のformControlName

  14. 14

    共通テーブル式内の2つのテーブルのUNION&ORDER

  15. 15

    アノテーションSpringAOP AspectJは、JSF2ビューで使用されるManaged Beanのメソッドでは機能しませんか?

  16. 16

    テーブル内の2つの値をテーブルSQL内の別の値に一致させる

  17. 17

    ビュー内のYii2バンドルテーブル

  18. 18

    テーブル内の2つの値を確認します

  19. 19

    PHP-テーブル内の2つの連想配列

  20. 20

    foreach内のForeach、2つのテーブル、Knockout.js

  21. 21

    SQL-同じテーブル内の2行の減算

  22. 22

    シリアル通信デバイスをJSF2アプリケーションと統合するための戦略

  23. 23

    シリアル通信デバイスをJSF2アプリケーションと統合するための戦略

  24. 24

    ページ内の2つの別々のレスポンシブテーブル

  25. 25

    テーブル内のwhileループ

  26. 26

    JSF2ボタンの値はパラメーター化されていますか?

  27. 27

    このHTMLテーブルをJSFテーブルに変換する方法

  28. 28

    データテーブル内のAngularMaterial 2 routerlink

  29. 29

    テーブル内の値の再配置

ホットタグ

アーカイブ