Идентификатор кнопки команды JSF внутри datatable - PullRequest
0 голосов
/ 15 января 2011

Как добавить командную кнопку в таблицу данных?

<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");

Но как только я изменил ссылку на запрос на командную кнопку friedId = null? Любая идея, как я могу передать значение с помощью командной кнопки

1 Ответ

2 голосов
/ 15 января 2011

Оберните значение данных в 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: компоненты).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...