Событие выбора строки RadioButton в p: datatable - PullRequest
0 голосов
/ 16 мая 2011

Выбор строки на основе RadioButton / Checkbox является распространенным случаем, и DataTable предоставляет решение для этого с функцией режима выбора столбцов.

<p:dataTable var="car" value="#{tableBean.cars}" paginator="true" rows="10"
                 selection="#{tableBean.selectedCar}">`
     <f:facet name="header">
            RadioButton Based Selection
        </f:facet>

        <p:column selectionMode="single" />

        <p:column headerText="Model">
            <h:outputText value="#{car.model}" />
        </p:column>

        <p:column headerText="Year">
            <h:outputText value="#{car.year}" />
        </p:column>

        <p:column headerText="Manufacturer">
            <h:outputText value="#{car.manufacturer}" />
        </p:column>


        <f:facet name="footer">
            <p:commandButton value="View" image="ui-icon ui-icon-search"
                             update="displaySingle" oncomplete="singleCarDialog.show()"/>
        </f:facet>
    </p:dataTable>

Я хочу знать, если я выберу radioButton первого столбца, , как я получу событие для этого.

  • Поскольку я хочу, чтобы кнопка отключалась при выборе первого столбца или переключателя последнего столбца.
  • И я также хочу получить индекс столбца при выборе столбца. Теперь я использую selectedCar для сравнения списка и получения индекса столбца. Это выглядит некрасиво. Кто-нибудь может мне помочь?

1 Ответ

1 голос
/ 16 мая 2011

Это решение только для PrimeFaces <= 2.x. </em>

Хороший пример - Витрина Primeface .Существует атрибут rowSelectListener, который можно использовать следующим образом:

rowSelectListener="#{tableBean.onRowSelect}"

и в компоненте поддержки:

public void onRowSelect(SelectEvent event) {  
        FacesMessage msg = new FacesMessage("Car Selected", 
                           ((Car) event.getObject()).getModel());  
        FacesContext.getCurrentInstance().addMessage(null, msg);  
}  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...