ordenar h:datatable

cancel
Showing results for 
Search instead for 
Did you mean: 
cybermakoki
Member II

ordenar h:datatable

Hola!!

Queria comentaros una cosilla que me pasa… para solventar el problema de los checkbox, en vez de mostrar el contenido con <a:richlist> lo estoy mostrando con <h:datatable> de la siguiente forma:

   <h:dataTable value="#{BrowseBean.content}" var="r2" styleClass="recordSet" 
      rowClasses="RecordSetRow, RecordSetRowAlt" headerClass="RecordSetHeader" width="100%" rendered="#{not empty BrowseBean.content}">


La cosa es que tengo el contenido ordenador por fecha de creación de forma ascendente, pero cuando se muestra en el dataTable, sale ordenado de forma ascendente!!

No se porque sale ordenado al revés Smiley Frustrated

Alguna idea????

Gracias de antemano  Smiley Happy
2 Replies
cybermakoki
Member II

Re: ordenar h:datatable

Bueno, para el que haya tenido que hacer algo parecido a lo mio, mostrar una lista que permita hacer selección múltiple…

He tenido que mostrar el BrowseBean.content con un h:dataTable que no me salia ordenado, sólo salia ordenado si declaraba antes que el h:dataTable, el a:richList… ya se que es una chapuza, pero es la única forma de que salga ordenado el contenido…

Os pego el código por si alguno le interesa, aunq ahora estoy con el problema del refresco y no se como solucionarl… Smiley Frustrated

   
                        <%– Content list –%>
                        <a:richList id="contentRichList"
                           binding="#{BrowseBean.contentRichList}"
                           viewMode="#{BrowseBean.browseViewMode}"
                           pageSize="#{BrowseBean.pageSizeContent}" styleClass="recordSet"
                           headerStyleClass="recordSetHeader" rowStyleClass="recordSetRow"
                           altRowStyleClass="recordSetRowAlt" width="100%"
                           value="#{BrowseBean.content}" var="r" refreshOnBind="true">
                        </a:richList>                     
                        
                        
                        
                           <h:dataTable id="contentList" value="#{BrowseBean.content}" binding="#{CustomBean.dataTable}" var="r2" styleClass="recordSet"
                           rowClasses="recordSetRow, recordSetRowAlt" headerClass="recordSetHeader" width="100%" rendered="#{not empty BrowseBean.content}">
                              
                           <h:column>
                               <h:selectBooleanCheckbox id="checkboxes" value="#{CustomBean.selectedIds[r2.id]}" />                              
                           </h:column>
                           <h:column>
                              <f:facet name="header">
                                 <h:outputText value="#{msg.name}" styleClass="header" id="col10-sort"/>                                 
                              </f:facet>                                                      
                              <h:inputHidden id="hiddenUrl" value="#{r2.url}"/>
                              <h:inputHidden id="hiddenName" value="#{r2.name}"/>
                              <a:actionLink id="col10-act1" value="#{r2.name}" href="#{r2.url}" target="new" image="#{r2.fileType16}" showLink="false" styleClass="inlineAction" />   
            
                           </h:column>      
                           
                        </h:dataTable>
                  
                        <br><br>
                                          
                  
                        

Este seria mi CustomBean:

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/



public class CustomBean {
   
   

      private BrowseBean browseBean;
       private NodeService nodeService;   
       private Map<String, Boolean> selectedIds = new HashMap<String, Boolean>();
       private HtmlDataTable dataTable;
      
       public CustomBean(){
          
          FacesContext fc = FacesContext.getCurrentInstance();
          BrowseBean bbean = (BrowseBean)fc.getExternalContext().getSessionMap().get("BrowseBean");
          dataTable = new HtmlDataTable();
      
       }
      
       public void submit(ActionEvent event){
          
          FacesContext fc = FacesContext.getCurrentInstance();  
         
          ServiceRegistry service = Repository.getServiceRegistry(fc);
           setBrowseBean((BrowseBean)fc.getExternalContext().getSessionMap().get("BrowseBean"));
           NavigationBean navBean = (NavigationBean)fc.getExternalContext().getSessionMap().get("NavigationBean");
           FileFolderService fileFolderService = service.getFileFolderService();

           Node companyHome = navBean.getCompanyHomeNode();

           try {
          
              setNodeService(service.getNodeService());
              NodeRef dictionary = getNodeService().getChildByName(companyHome.getNodeRef(), ContentModel.ASSOC_CONTAINS , "Data Dictionary");
              NodeRef temp = getNodeService().getChildByName(dictionary, ContentModel.ASSOC_CONTAINS , "Temp");
              for(int i = 0; i<browseBean.getContent().size(); i++){
                 Node nodo = (Node)browseBean.getContent().get(i);              
                 if(getSelectedIds().get(nodo.getId()) != null && getSelectedIds().get(nodo.getId()).booleanValue()){                    
                    fileFolderService.move(nodo.getNodeRef(), temp, null);
                 }
              }
              selectedIds = new HashMap<String, Boolean>();
           }catch(FileNotFoundException e){
              
           }
       
       }
      
     
      public void setBrowseBean(BrowseBean browseBean) {
         this.browseBean = browseBean;
      }

      public BrowseBean getBrowseBean() {
         return browseBean;
      }

      public void setNodeService(NodeService nodeService) {
         this.nodeService = nodeService;
      }

      public NodeService getNodeService() {
         return nodeService;
      }

      public void setSelectedIds(Map<String, Boolean> selectedIds) {
         this.selectedIds = selectedIds;
      }

      public Map<String, Boolean> getSelectedIds() {
         return selectedIds;
      }

      public void setDataTable(HtmlDataTable dataTable) {
         this.dataTable = dataTable;
      }

      public HtmlDataTable getDataTable() {
         return dataTable;
      }
}

Espero que a alguien le sirva de ayuda…

Saludos Smiley Happy
cybermakoki
Member II

Re: ordenar h:datatable

Vaya, pues pensé que estaba ordenada pero no… poniendo el richList en la jsp unicamente la veo ordenada, pero por debajo está de otra forma… Smiley Sad