8 Replies Latest reply on Jan 14, 2009 7:39 AM by onoank

    How to keep selected row marked after re-open page in dataTa

      I'm using a dataTable. When a button of a record is clicked in the table, the clicked row is marked as selected (via javascript) and a new detail-page is openend (no modal-panel!). After the detail-page is closed, the page with the dataTable is shown again. That all is working fine.

      But when the dataTable-page is shown again, the selected record is not marked as selected any more.

      Is it possible to keep the selected row marked or mark it again after opening the page again (via javascript e.g.) ?

      I alread looked at 'Specific row update' (http://java.dzone.com/articles/an-introduction-to-jboss-richf?page=0%2C5) that might be a possible beginning. But i didn't managed to mark the row again. I also tried to work with "rowKeyVar" and "pageIndexVar".

      Does anybody has an idea or could give an advise, please?

      Here is the short-version of the data-table

      <rich:dataTable value="#{orders}" var="item" id="test"
       rows="10"
       rowKeyVar="rowNo"
       reRender="scroller" >
      
      <a4j:support event="onRowClick" onsubmit="markRow(this, #{rowNo})" />
      
      <rich:column filterBy="#{item.orderId}" sortBy="#{item.orderId}" filterEvent="onkeyup" headerClass="columnheader" >
       <f:facet name="header" >
       <h:outputText value="#{msg['ps.ui.orderId']}" />
       </f:facet>
       <h:outputText value="#{item.orderId}" />
       </rich:column>
      
       ...some more columns...
      
      
       <rich:column headerClass="columnheader" >
       <div>
       <h:commandButton id="btnEdit" action="#{orderHandler.loadDetails(item)}" image="page_edit.png" />
       </div>
       </rich:column>
      
       <f:facet name="footer">
       <rich:datascroller id="scroller" pageIndexVar="pageNo" renderIfSinglePage="false"/>
       </f:facet>
      
      </rich:dataTable>


      Many thank for your help.

        • 1. Re: How to keep selected row marked after re-open page in da
          ilya_shaikovsky

          if you able to store in the model that row is selected - so just define styleClass for column dynamically in order to use on initial rendering.

          Something like

          <rich:column styleClass="#{category.price > 30000?'sel':'empty'}">
          
          


          works fine for me in samples.

          • 2. Re: How to keep selected row marked after re-open page in da
            onoank

            i have the similar problem
            i choose a row and at the back end it selects it succesful but after rendering i can not see selected row in ui

            <s:div id="tablo">
             <r:dataTable
             value="#{rgMusMusKisiyeBagliBilgilerHome.kurumBilgileriModelList}"
             rowKeyVar="rkv" width="100%" rows="5" var="entity">
             <f:facet name="header">
             <r:columnGroup>
             <r:column>
             <h:outputText value="#{messages['musteri.table.seciniz']}" />
             </r:column>
             <r:column>
             <h:outputText value="#{messages['musteri.etiket.baglantiTipi']}" />
             </r:column>
             <r:column>
             <h:outputText value="#{messages['musteri.table.kurum']}" />
             </r:column>
             <r:column>
             <h:outputText value="#{messages['musteri.table.sicilNo']}" />
             </r:column>
             </r:columnGroup>
             </f:facet>
             <r:column>
             <h:selectOneRadio>
             <a:support event="onclick" ajaxSingle="true" action="#{rgMusMusKisiyeBagliBilgilerHome.selectMusteriBilgiTablosu(rkv)}"
             onsubmit="dataTableSelectOneRadio(this);" />
             <f:selectItem itemValue= "rkv" />
             </h:selectOneRadio>
             </r:column>
             <r:column>
             <h:outputText value="#{entity.BAGLANTI_TIPI}" />
             </r:column>
             <r:column>
             <h:outputText value="#{entity.KURUM_ADI}" />
             </r:column>
             <r:column>
             <h:outputText value="#{entity.SICIL_NO}" />
             </r:column>
             <f:facet name="footer">
             <r:datascroller
             rendered="#{rgMusMusKisiyeBagliBilgilerHome.kurumBilgileriModelList.size > 5}" />
             </f:facet>
            
             </r:dataTable>
             </s:div>


            • 3. Re: How to keep selected row marked after re-open page in da
              onoank

              i have the similar problem
              i choose a row and at the back end it selects it succesful but after rendering i can not see selected row in ui

              <s:div id="tablo">
               <r:dataTable
               value="#{rgMusMusKisiyeBagliBilgilerHome.kurumBilgileriModelList}"
               rowKeyVar="rkv" width="100%" rows="5" var="entity">
               <f:facet name="header">
               <r:columnGroup>
               <r:column>
               <h:outputText value="#{messages['musteri.table.seciniz']}" />
               </r:column>
               <r:column>
               <h:outputText value="#{messages['musteri.etiket.baglantiTipi']}" />
               </r:column>
               <r:column>
               <h:outputText value="#{messages['musteri.table.kurum']}" />
               </r:column>
               <r:column>
               <h:outputText value="#{messages['musteri.table.sicilNo']}" />
               </r:column>
               </r:columnGroup>
               </f:facet>
               <r:column>
               <h:selectOneRadio>
               <a:support event="onclick" ajaxSingle="true" action="#{rgMusMusKisiyeBagliBilgilerHome.selectMusteriBilgiTablosu(rkv)}"
               onsubmit="dataTableSelectOneRadio(this);" />
               <f:selectItem itemValue= "rkv" />
               </h:selectOneRadio>
               </r:column>
               <r:column>
               <h:outputText value="#{entity.BAGLANTI_TIPI}" />
               </r:column>
               <r:column>
               <h:outputText value="#{entity.KURUM_ADI}" />
               </r:column>
               <r:column>
               <h:outputText value="#{entity.SICIL_NO}" />
               </r:column>
               <f:facet name="footer">
               <r:datascroller
               rendered="#{rgMusMusKisiyeBagliBilgilerHome.kurumBilgileriModelList.size > 5}" />
               </f:facet>
              
               </r:dataTable>
               </s:div>


              • 4. Re: How to keep selected row marked after re-open page in da
                onoank

                sorry for sending message twice.
                i mean that the selected row is not shown as selected after selecting it

                • 5. Re: How to keep selected row marked after re-open page in da
                  ilya_shaikovsky

                  b.t.w. if you want to use built-in selection try out extended data table.

                  • 6. Re: How to keep selected row marked after re-open page in da
                    onoank

                    what is extended data table
                    my version is 3.2.2 there is nothing named extended data table

                    • 7. Re: How to keep selected row marked after re-open page in da
                      nbelaevski

                      Hi,

                      You can look at extended data table here: http://livedemo.exadel.com/richfaces-demo/richfaces/extendedDataTable.jsf?c=extendedDataTable&tab=usage

                      It is available in 3.2.2.GA, maybe IDE doesn't show it in prompting?

                      • 8. Re: How to keep selected row marked after re-open page in da
                        onoank

                        thanks but we can not upgrade our richfaces version
                        how i can i fixe that problem?
                        when i select the row from table it sets the value at bean but renders it and shows as unselected