Domanda

Sto sviluppando una web app Seam-Jsfv1.2-EJB3. Ho una datatable e caselle in ogni riga. Inoltre, ho un datascroller in fondo del mio tavolo pure.

Il mio problema è quando si fa clic sul numero di pagina successiva dal scroller, le caselle di controllo selezionati alla prima pagina del datatable è andato. Voglio dire, anche se sono stati selezionati, cliccando la pagina successiva renderli deselezionate. Lo vedo tornando alla prima pagina ancora una volta facendo clic sul scroller.

Avete qualche idea su questo problema? Al fine di clearify mio caso, ho attaccato il mio codice qui sotto:

<rich:dataTable
            id="apiV2ProductList" rows="10" var="_apiV2Product"
            value="#{apiV2ProductList.resultList}"
            rendered="#{not empty apiV2ProductList.resultList}" reRender="ds">
            <rich:column>
                <f:facet name="header"> 
                    <h:selectBooleanCheckbox id="selectionCheckAll" onclick="selectAll()" /> 
                </f:facet>
                <h:selectBooleanCheckbox id="selectionCheck" onclick="increase(this)" value="#{_apiV2Product.selectValue}" >  
                </h:selectBooleanCheckbox>
            </rich:column>

...

<f:facet name="footer">
                <rich:datascroller id="ds" renderIfSinglePage="false">
                </rich:datascroller>
            </f:facet>

Molte grazie in anticipo. Baris

È stato utile?

Soluzione 2

L'aggiunta di un tag di supporto a4j tra scroller ha risolto il mio problema:

<f:facet name="footer">
  <rich:datascroller id="ds" renderIfSinglePage="false">
   <a4j:support event="onpagechange"/> 
  </rich:datascroller>
</f:facet>

Tuttavia l'altra cosa è, io sto usando JQuery allo stile mio tavolo (es. Al passaggio del mouse e fuori), e questa volta, quando si fa clic la pagina successiva del mio tavolo, lo stile è andato.

Qualsiasi aiuto sarebbe grande, molte grazie in anticipo.

** PS: A proposito la cosa wierest in mente è che mi viene impossibile trovare una soluzione da soli per questo tipo di problemi. La vostra creazione potrebbe non essere sempre sufficiente a risolvere (almeno qui nel mio esempio, l'aggiunta di a4j: supporto cosa) Chiedo esperti, come possiamo gestire quel tipo di cose da noi stessi ... **

Altri suggerimenti

È possibile estendere il org.richfaces.renderkit.html.DatascrollerTemplate scrivere il proprio DataScroller per il proprio stile con l'aggiunta di un componente con la configurazione di seguito in faces-config.xml

<component>
    <component-type>exCustHtmlDatascroller</component-type>
    <component-lass>org.jsf.common.ui.EXCustHtmlDatascroller</component-class>
</component>
<render-kit>
  <renderer>
      <component-family>org.richfaces.Datascroller</component-family>
      <renderer-type>exCustDataScrollerTemplate</renderer-type>
      <renderer- class>org.jsf.common.ui.EXCustDataScrollerTemplate</renderer-class>
  </renderer>
</render-kit>

Non è necessario jQuery per lo styling DataTable

<rich:dataTable id="dataTable" var="x"  
onRowMouseOver="this.style.backgroundColor='#F1F1F1'"
onRowMouseOut="this.style.backgroundColor='#{a4jSkin.tableBackgroundColor}'"

Il problema si stava vedendo con gli stili da rimuovere è a causa della natura di AJAX, e il modo in cui la tabella di rendering viene eseguito.

Supponendo che si sparavano la chiamata styling iniziale basata su una qualche forma di pagina onLoad, la prima volta che la pagina viene visualizzata, verrà applicato gli stili. Tuttavia, quando si fa clic sul pulsante "Avanti" con la Paginator, si sta tirando un sacco di nuovi giù HTML, e sostituendo il vecchio HTML nella tabella con la, le informazioni più recenti aggiornati. Il proble che stai vedendo è che si è visto styling perché jQuery stili applicato al vecchia nodi, su rerender, questi nodi vengono completamente gettati via, con il loro stile. È sufficiente figura il gancio chiamare "styling" metodo, e ri-eseguire tale chiamata dopo la tabella è re-rendering.

In generale, io uso un a4j:. Variabili di stato, e impostare l'OnStart o OnStop per ri-analizzare la tabella

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top