2011-01-15 11 views
0

データテーブルの中にコマンドボタンを追加するにはどうすればよいですか?データテーブル内のJSFコマンドボタンID

<hx:dataTableEx value="#{searchData.searchFriends}" var="s"> 
    <hx:columnEx> 
    <f:facet name="header"> 
    <h:outputText value="First Name" /> 
    </f:facet> 
    <hx:requestLink action="#{pc_Search.doAddFriendAction}"> 
    <h:outputText value="Add as Friend" /> 
    <f:param name="friendId" value="#{s.memberId}" /> 
    </hx:requestLink> 
    </hx:columnEx> 
    </hx:dataTableEx> 

は、バックエンド

String friendId = (String)getRequestParam().get("friendId"); 

でデータを取得するために、しかし、私はrequestlinkを変更すると、ボタンfriedId =ヌルを指令しますか?どのように私はコマンドボタンを使用して値を渡すことができます

答えて

2

DataModelのdatatable値をラップします。次に、選択した行をDataModel#getRowData()で取得できます。 IBMは、クライアントフレームワーク(それらのhx:コンポーネント)に対向して

<h:dataTable value="#{bean.friendsModel}" var="friend"> 
    <h:column> 
     <h:commandButton value="Add as friend" action="#{bean.addAsFriend}" /> 
    </h:column> 
</h:dataTable> 

public class Bean { 
    private List<Friend> friends; 
    private DataModel friendsModel; 

    public Bean() { 
     friends = getItSomehow(); 
     friendsModel = new ListDataModel(friends); 
    } 

    public void addAsFriend() { 
     Friend selectedFriend = (Friend) friendsModel.getRowData(); 
     // ... 
    } 
} 

は良いとして動作するはずです。

関連する問題