0

皆さん、

JSFでの作業は2日目ですので、質問がはっきりしない場合は、できる限り明確にしようと思います。

添付の画面から、最初の行が空白のテーブルを確認でき、2番目の行からテーブルエントリがあります。

私がやりたいのは、テーブルの最初の行を、ID、名前、および値の値を入力できるエントリとして使用したいということです。

[保存]ボタンをクリックすると、行がデータベースに追加され、フェッチされて表示されます。データベース部分は問題ありません。

私の質問は次のとおりです:(ソリューションを提供するときにコードスニペットを提供してください)

1)値のある行の[編集]ボタンをクリックしたら、(ID、名前、値)のテキストフィールドを表示する必要があります。[編集]ボタンをクリックすると、無効になっている[保存]ボタンを有効にする必要があります。テーブルがロードされると、変更を加えることができるようになりますが、現在はラベルのように見えます。

保存ボタンを押したときにTextFieldに変更を加えた後、それを無効にする必要があります。

行をテーブルの最初の行のようにしたいのですが、編集するための値が含まれています。それを達成する方法は?

2)ボタンのIDを参照して、テキストフィールド(ID、名前、値)をレンダリングするためにボタンが有効か無効かを確認することはできますか?

これがテーブルの列コードです

<h:column>
    <f:facet name="header">
        <h:outputText value="Value" />
    </f:facet>
    <h:outputText value="#{dataItem.value}" />
    <h:inputText id="value" value="#{dataItem.value}" rendered="#{dataItem.value == null}"/>
</h:column>

特定の行のデータがある場合はレンダリングしません。これは、一度にoutputTextまたはinputTextのいずれかを表示するために行われます。

ここに画像の説明を入力してください

4

1 に答える 1

0

このような場合のコードの投稿には、多くの時間がかかる場合があります。同様の画面をいくつか使用したので、疑似コードを使用したヒントをいくつか示します...

BackingBean {
    // take a current variable to keep selected row
    DataItem current;
    // list of dataitems to show in grid 
    List<DataItem> listOfItems;

    // Use ActionListener to set current
    editActionListener(ActionEvent e){
        current = read via actionevent.getAttribute()
    }
    // Use save to save the data, reload the table, disable the button
    saveAction(){
        ManagerBean.save(current);
        reload listOfItems;
        current = null;
        disable save;
    }
}

xhtml で現在の値を表示します。

<table component>
<row>
    <h:inputText value="#{backingBean.current.id}" />
    <h:inputText value="#{backingBean.current.name}" />
    <h:inputText value="#{backingBean.current.value}" />
</row>
<loop across "#{backingBean.listofItems}" with "item" variable>
    <row>
        <h:inputText value="#{item.id}" />
        <h:inputText value="#{item.name}" />
        <h:inputText value="#{item.value}" />
        <h:commandButton text="Edit" 
                    actionListener="#{backingBean.editActionListener}" />
        <h:commandButton text="Save" actionListener="#{backingBean.saveActionListener}"
                    action="#{backingBean.saveAction}" />
    </row>
</endloop>
</table component>
于 2012-10-13T18:14:07.427 に答える