Frage

Ich entwickle eine Naht-Jsfv1.2-EJB3 Web-App. Ich habe eine Datentabelle und Kontrollkästchen in jeder Zeile. Außerdem habe ich eine datascroller am unteren Rand meiner Tabelle als auch.

Mein Problem ist, wenn ich die nächste Seitenzahl aus dem Stellrad klicken, werden die ausgewählten Kontrollkästchen auf der ersten Seite der Datentabelle ist verschwunden. Ich meine, selbst wenn sie ausgewählt wurden, um die nächste Seite machen, klicken sie abgewählt. Ich sehe es von wieder auf die erste Seite zurück von dem Stellrad klicken.

Sie haben keine Ahnung von diesem Problem? Um meinen Fall clearify, angebracht ich meinen Code unten:

<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>

Vielen Dank im Voraus. Baris

War es hilfreich?

Lösung 2

einen a4j Unterstützung Tag zwischen Stellrad Hinzufügen hat mein Problem gelöst:

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

Aber die andere Sache ist, ich JQuery bin mit auf Stil meinen Tisch (ex. Auf der Maus über die und aus), und dieses Mal, wenn ich die nächste Seite von meiner Tabelle klicken, wird die Mode gekommen.

Jede Hilfe wäre toll, vielen Dank im Voraus.

** PS: Übrigens das wierest Sache meiner Meinung nach ist es mir unmöglich, kommt eine Lösung selbst für diese Art von Problemen zu finden. Ihre Kreation kann nicht immer genug zu lösen sein (zumindest hier in meinem Beispiel das Hinzufügen a4j: Unterstützung Sache) Ich bin Experten fragen, wie können wir diese Art von Dingen, von uns selbst handhaben ... **

Andere Tipps

Sie können die org.richfaces.renderkit.html.DatascrollerTemplate erweitern Ihre eigenen DataScroller für Ihr eigenes Styling schreiben, indem eine Komponente mit der folgenden Konfiguration in faces-config.xml

Hinzufügen
<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>

Sie brauchen jQuery nicht für das Styling der Datatable

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

Das Problem, das Sie mit den Stilen zu sehen, wurden entfernt wird, ist aufgrund der Art von AJAX, und die Art und Weise ist die Tabelle erneut gerendert.

Angenommen, Sie die ursprüngliche Styling Anruf auf irgendeiner Form von Seite beruhten Brennen onLoad, das erste Mal die Seite gerendert wird, wird Ihre Stile angewendet. Wenn Sie jedoch die Schaltfläche „Weiter“ mit dem paginator klicken Sie ziehen viele neuen HTML nach unten, und ersetzt die alte HTML in der Tabelle mit den neueren, aktualisierten Informationen. Die Proble Sie sehen, ist, dass Sie Styling sah, weil jQuery Stile auf die Anwendung alt Knoten, auf rerender, diese Knoten komplett weg geworfen werden, zusammen mit ihrem Styling. Sie müssen einfach nur, um herauszufinden, den Haken der „Styling“ Methode aufrufen und erneut ausführen diesen Anruf, nachdem die Tabelle neu gerendert wird.

Im Allgemeinen Ich verwende eine a4j:. Status-Tag und die onstart oder OnStop zu re-analysieren, um die Tabelle einrichten

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top