Использование p: treetable selectionMode = "checkbox", я пытаюсь установить флажок в заголовке, так что при выборе его будут выбраны все флажки во всех строках TreeTable. Все мои попытки вызвать метод метода прослушивателя p: ajaxSelectAllRows потерпели неудачу. Я смог сделать это, используя p: datatable и нуждаюсь в такой же функциональности, используя p: treetable. Любая помощь будет оценена.p: treeTable - p: метод прослушивания ajax не называется
Ниже приведен код:
<h:form id="searchFormId">
<p:panel id="searchPanelId">
<p:outputPanel id="ResultsPanelId">
<p:treeTable id="resultsTreeTableId" value="#{aBean.resultsRoot}"
scrollRows="20" scrollable="true" var="aNode"
selectionMode="checkbox" selection="#{aBean.selectedResultNodes}">
<p:ajax event="select" listener="#{aBean.onNodeSelect}"
update="resultsTreeTableId" />
<p:ajax event="unselect" listener="#{aBean.onNodeUnselect}"
update="resultsTreeTableId" />
<p:column>
<f:facet name="header">
<p:selectBooleanCheckbox id="allChkb" name="allChkb"
value="#{aBean.selectAll}">
<p:ajax listener="#{aBean.processSelectAllRows}"
process="@this" update="resultsTreeTableId" />
</p:selectBooleanCheckbox>
</f:facet>
<h:outputText value="#{aNode.name}" />
</p:column>
</p:treeTable>
</p:outputPanel>
</p:panel>
</h:form>
Вот метод Listener
public void processSelectAllRows(AjaxBehaviorEvent event) {
System.out.println("Select all rows.");}
Окружающая среда: 1) Primefaces 3.5 (не будет в состоянии модернизировать в ближайшее время) 2) myfaces-bundle 2.1.15 3) Сервер Tomcat 4) Java 1.7
Я попытался использовать NodeSelectEvent, как вы предложили, но это не сработало как p: selectBooleanCheckbox запускал событие «change». Другая вещь, которую я заметил, заключается в том, что не обновлял свойство selectAll, когда я нажимаю на него, поскольку его метод setter не вызывается. @Anderson Спасибо за ваш вклад. –
Rana