2011-01-15 2 views
0

Как добавить в commandbutton внутри datatable?JSF commandbutton id внутри datatable

<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 = NULL? любая идея, как я могу передать значение с помощью командной кнопки

ответ

2

Оберните значение данных в DataModel. Затем вы можете получить выбранную строку на DataModel#getRowData().

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(); 
     // ... 
    } 
} 

с

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

Должно работать так же хорошо с IBM Faces Client Framework (те hx: компоненты).

Смежные вопросы