2014-10-15 3 views
0

Использование 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

ответ

0

Вместо AjaxBehaviorEvent вы можете использовать NodeSelectEvent.

NodeSelectEvent - это подкласс AjaxBehaviorEvent, присутствующий в API Primefaces 3.5. Если вы используете не последнюю версию перфолей, лучше использовать объекты Primefaces вместо объектов Faces.

Надеюсь, что я помогу вам! :)

+0

Я попытался использовать NodeSelectEvent, как вы предложили, но это не сработало как p: selectBooleanCheckbox запускал событие «change». Другая вещь, которую я заметил, заключается в том, что не обновлял свойство selectAll, когда я нажимаю на него, поскольку его метод setter не вызывается. @Anderson Спасибо за ваш вклад. – Rana

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