0

データテーブルに表示された Bean クラスの Bean クラスに従業員オブジェクトのリストがあり、employee以下で説明するようにポップアップでデータテーブルから特定の行を編集したい

datagridすべての詳細を含むemployee、各行にはボタンがあります。ボタンeditをクリックすると、editクリックした特定の従業員の既存の情報を含む新しいポップアップが表示され、編集後、リスト内の特定のオブジェクトに対して変更が反映される必要があります。データ表。

私はそれに苦労していますが、ポップアップで編集するオブジェクトを渡す解決策が見つかりませんでした。

4

2 に答える 2

0

Primefaces inplace モジュールを使用してジョブを実行できます ( http://www.primefaces.org/showcase/ui/inplace.jsf )。

于 2013-02-26T10:21:57.440 に答える
0

私も初心者です ;) データを管理する ManagedBean を作成するだけです。たとえば、データベースに Employee テーブルがあるとします。まず、Employee などの名前のエンティティを作成する必要があります。次に、そのエンティティを担当する ManagedBean を作成する必要があります。最後に行う必要があるのは、ビューの作成です。

Employee.java (Netbeans/Eclipse を使用してこのファイルを作成するだけです)

@Entity
public class Employee implements Serializable {    
    private Integer id;
    private String name;
    private String surname;
    private String position;

    // getters and setters
}

EmployeeBean.java

@ManagedBean
@SessionScoped
public class EmployeeBean implements Serializable {

    private Employee employee;

    public void EmployeeBean() {}

    // getter and setter for Employee

    public String save() {
        // save employee data here
    }       
}

従業員.xhtml

<h:form>
    <!-- do it in loop -->
    <p:inplace editor="true">  
        <p:inputText value="#{employeeBean.employee.name}" required="true" label="text"/>  
    </p:inplace>
    <p:inplace editor="true">  
        <p:inputText value="#{employeeBean.employee.surname}" required="true" label="text"/>  
    </p:inplace>
    <h:commandButton action="#{employeeBean.save}" />
</h:form>

データの使用<inplace/>はajaxイベントで変更されるため、ManagedBeanはSessionScopedにする必要があります(そう思うが、間違っている可能性があります)。そうでない場合、Bean は状態を失います。

于 2013-02-26T15:39:15.833 に答える