0 Replies Latest reply on May 5, 2010 2:56 PM by Venkatesh K

    Pagination problem with check box

    Venkatesh K Newbie

      Hi........
      I am developing the application where my vision is to get selected rows by clicking on checkbox in extendedDataTable for that I wrote the following code in xhtml



      <rich:extendedDataTable id="shipmentDetailListTable" headerClass="head"
                                         var="_shipmentDetail" rows="20" selectionMode="multi" selectedClass="selection"
                                         height="532px" width="1150px" value="#{cargoDetail}">
                                         
                               <f:facet name="header">#{messages['com.infyz.toms.label.Search_results']}</f:facet>
                               
                               <rich:column id="check" width="28px">
                                    <f:facet name="header">&#160;</f:facet>
                                    <h:selectBooleanCheckbox id="Checkbox" value="#{itGateOperationsAction.detailSelectionCapital[_shipmentDetail]}"/>
                              </rich:column>
                               
                               <rich:column id="voyage" width="120px" sortable="true"
                                              sortBy="#{_shipmentDetail.itShipmentOrder.itVoyageMaster.voyageNumber}"
                                              filterBy="#{_shipmentDetail.itShipmentOrder.itVoyageMaster.voyageNumber}" filterEvent="onkeyup"
                                              headerClass="head"
                                              label="#{messages['com.infyz.toms.properties.Voyage_number']}">
                                         <f:facet name="header">
                                              <h:outputText styleClass="headerText" value="#{messages['com.infyz.toms.properties.Voyage_number']}" />
                                         </f:facet>
                                         <h:outputText value="#{_shipmentDetail.itShipmentOrder.itVoyageMaster.voyageNumber}" />
                               </rich:column>
                               
                               <rich:column id="shipmentnumber" width="120px" sortable="true"
                                              sortBy="#{_shipmentDetail.itShipmentOrder.shipmentNumber}"
                                              filterBy="#{_shipmentDetail.itShipmentOrder.shipmentNumber}" filterEvent="onkeyup"
                                               headerClass="head"
                                              label="#{messages['com.infyz.toms.properties.Shipment_number']}">
                                         <f:facet name="header">
                                              <h:outputText styleClass="headerText" value="#{messages['com.infyz.toms.properties.Shipment_number']}" />
                                         </f:facet>
                                         <h:outputText value="#{_shipmentDetail.itShipmentOrder.shipmentNumber}" />
                               </rich:column>
                                    
                               <rich:column id="cargoid" width="118px" sortable="true" headerClass="head"
                                              sortBy="#{_shipmentDetail.cargoId}" 
                                              filterBy="#{_shipmentDetail.cargoId}" filterEvent="onkeyup"
                                              label="#{messages['com.infyz.toms.properties.Cargo_id']}" >
                                         <f:facet name="header">
                                              <h:outputText styleClass="headerText" value="#{messages['com.infyz.toms.properties.Cargo_id']}" />
                                         </f:facet>
                                         <h:outputText value="#{_shipmentDetail.cargoId}" />
                               </rich:column>
                               
                               <rich:column id="barcode" width="120px" sortable="true" headerClass="head"
                                              sortBy="#{_shipmentDetail.barcode}" 
                                              filterBy="#{_shipmentDetail.barcode}" filterEvent="onkeyup"
                                              label="#{messages['com.infyz.toms.properties.Bar_code']}">
                                         <f:facet name="header">
                                              <h:outputText styleClass="headerText" value="#{messages['com.infyz.toms.properties.Bar_code']}" />
                                         </f:facet>
                                         <h:outputText value="#{_shipmentDetail.barcode}" />
                               </rich:column>
                                                                  
                               <rich:column id="commodityClassId" width="120px" sortable="true" headerClass="head"
                                              sortBy="#{_shipmentDetail.icCommodityClass.description}" 
                                              filterBy="#{_shipmentDetail.icCommodityClass.description}" filterEvent="onkeyup" label="#{messages['com.infyz.toms.properties.Comm_class']}">
                                         <f:facet name="header">
                                              <h:outputText styleClass="headerText" value="#{messages['com.infyz.toms.properties.Comm_class']}" />
                                         </f:facet>
                                         <h:outputText value="#{_shipmentDetail.icCommodityClass.commodityClassCode }" />
                               </rich:column>
                                         
                               <rich:column id="commodityTypeId" width="134px" sortable="true" headerClass="head"
                                              sortBy="#{_shipmentDetail.icCommodityType.description}" 
                                              filterBy="#{_shipmentDetail.icCommodityType.description}" filterEvent="onkeyup" label="#{messages['com.infyz.toms.properties.Comm_type']}">
                                         <f:facet name="header">
                                              <h:outputText styleClass="headerText" value="#{messages['com.infyz.toms.properties.Comm_type']}" />
                                         </f:facet>
                                         <h:outputText value="#{_shipmentDetail.icCommodityType.commodityTypeCode }" />
                               </rich:column>
                                         
                               <rich:column id="icCommodity" width="150px" sortable="true" headerClass="head"
                                              sortBy="#{_shipmentDetail.icCommodity.commodityCode}" 
                                              filterBy="#{_shipmentDetail.icCommodity.commodityCode}" filterEvent="onkeyup" label="#{messages['com.infyz.toms.entity.Commodity']}">
                                         <f:facet name="header">
                                              <h:outputText styleClass="headerText" value="#{messages['com.infyz.toms.entity.Commodity']}" />
                                         </f:facet>
                                         <h:outputText value="#{_shipmentDetail.icCommodity.commodityCode}" />
                               </rich:column>
                               
                                    <rich:column id="make" width="120px" sortable="true" headerClass="head"
                                              sortBy="#{_shipmentDetail.icMake.makeCode}" filterBy="#{_shipmentDetail.icMake.makeCode}" 
                                              filterEvent="onkeyup" label="#{messages['com.infyz.toms.entity.Make']}">
                                              <f:facet name="header">
                                                   <h:outputText styleClass="headerText"
                                                        value="#{messages['com.infyz.toms.entity.Make']}" />
                                              </f:facet>
                                              <h:outputText value="#{_shipmentDetail.icMake.makeCode}" />
                                         </rich:column>
                                         
                                         <rich:column id="model" width="120px" sortable="true" headerClass="head"
                                              sortBy="#{_shipmentDetail.icCommodityModels.commodityModelCode}" filterBy="#{_shipmentDetail.icCommodityModels.commodityModelCode}" 
                                              filterEvent="onkeyup" label="#{messages['com.infyz.toms.entity.Model']}">
                                              <f:facet name="header">
                                                   <h:outputText styleClass="headerText"
                                                        value="#{messages['com.infyz.toms.entity.Model']}" />
                                              </f:facet>
                                              <h:outputText value="#{_shipmentDetail.icCommodityModels.commodityModelCode}" />
                                         </rich:column>
                               
      
                   </rich:extendedDataTable>
                  <rich:spacer height="5" />
            <rich:datascroller fastControls="hide"
                          page="#{itGateOperationsAction.scrollerPage}" pagesVar="pages" for="shipmentDetailListTable"
                          id="ds">
                          <f:facet name="first">
                              <h:outputText value="#{messages['com.infyz.toms.label.button.First_Page']}" styleClass="scrollerCella"/>
                          </f:facet>
                          <f:facet name="first_disabled">
                              <h:outputText value="#{messages['com.infyz.toms.label.button.First_Page']}" styleClass="scrollerCelld" />
                          </f:facet>
                          <f:facet name="last">
                              <h:outputText value="#{messages['com.infyz.toms.label.button.Last_page']}" styleClass="scrollerCella" />
                          </f:facet>
                          <f:facet name="last_disabled">
                              <h:outputText value="#{messages['com.infyz.toms.label.button.Last_page']}" styleClass="scrollerCelld" />
                          </f:facet>
                          <f:facet name="previous">
                              <h:outputText value="#{messages['com.infyz.toms.label.button.Previous_page']}" styleClass="scrollerCella" />
                          </f:facet>
                          <f:facet name="previous_disabled">
                              <h:outputText value="#{messages['com.infyz.toms.label.button.Previous_page']}" styleClass="scrollerCelld" />
                          </f:facet>
                          <f:facet name="next">
                              <h:outputText value="#{messages['com.infyz.toms.label.button.Next_page']}" styleClass="scrollerCella" />
                          </f:facet>
                          <f:facet name="next_disabled">
                              <h:outputText value="#{messages['com.infyz.toms.label.button.Next_page']}" styleClass="scrollerCelld" />
                          </f:facet>
                           <f:facet name="pages">
                              <h:panelGroup>
                                  <h:outputText value="Page "/>
                                  <h:selectOneMenu value="#{itGateOperationsAction.scrollerPage}" 
                                      onchange="#{rich:component('ds')}.switchToPage(this.value)">
                                      <f:selectItems value="#{itGateOperationsAction.totalPagesToScroll}" />
                                  </h:selectOneMenu>
                                  <h:outputText value=" of #{pages}" />
                              </h:panelGroup>
                          </f:facet>
                      </rich:datascroller>     
                <rich:spacer height="5" rendered="#{cargoDetail.rowCount > 0}"/>
          <div align="right">
               <a4j:commandButton id="add" rendered="#{cargoDetail.rowCount > 0}"
                         value="#{messages['com.infyz.toms.label.button.tooltip.Add']} to Gate Operations"
                         action="#{itGateOperationsAction.takeSelection}"/>
          </div>      



      and i am restricting it to 20 rows


      and in backing bean i wrote the code in a following manner




          private Map<ItShipmentDetail,Boolean> detailSelectionCapital  = new HashMap<ItShipmentDetail,Boolean>();
          
           
          public Map getDetailSelectionCapital() {
              return detailSelectionCapital;
          }
           public String takeSelection(){
                List<ItShipmentDetail> temp = new ArrayList<ItShipmentDetail>();
                for (ItShipmentDetail line: cargoDetail) {
                     Boolean selected = detailSelectionCapital.get(line);
                     log.info("...................................................................."+selected);
                     if(selected)
                          temp.add(line);
              }
                for(ItShipmentDetail t:temp){
                     ItGateOperationsDetail igd = new ItGateOperationsDetail();
                     igd.setItGateOperations(selectedItGateOperations);
                     igd.setItShipmentDetail(t);
                     igd.setCreatedDate(getCurrentDate());
                     igd.setModifiedDate(getCurrentDate());
                     igd.setFActive(selectedItGateOperations.getFActive());
                     igd.setQuantityReceived(1);
                     igd.setQuantityPositioned(0);
                     igd.setQuantityStuffed(0);
                     selectedIgod=igd;
                     itGateDetail.add(igd);
                }
                detailSelectionCapital = new HashMap<ItShipmentDetail,Boolean>();
                return"/operations/ItGateOperationsEdit.xhtml";
             }



      here if i get 50 rows then i have 3 pages to view but detailSelectionCapital is holding first 20 rows only when i click on next button i am able to go next page,if i click on any checkbox over there that will results in null bcoz of this i am unable to identify the selected columns


      I am unable to identify the problem
      plz help me........
      if there is any best solution please share with me