richfaces datatable

Status
Nicht offen für weitere Antworten.
T

traysa

Gast
hallo zusammen,

ich schlage mich grad mit richfaces herum und versuche eine tabelle zu bauen bei der man u.a. eine zeile durch mausklick auswählen kann und sich durch einen weiteren klick auf einen ajax-commandButton den datensatz der hinter der ausgewählten zeile steckt mit einem modalpanel anzeigen lassen kann.
die arbeit mit rich:scrollableDataTable hab ich bereits aufgegeben, da ich damit einige probleme hatte. deshalb hab ich mir selbst einen scroller um mein datatable gebaut.

Code:
	<h:panelGroup>
Tabellen Header:
Code:
		<div class="header-border">
			<rich:dataTable id="Headers" styleClass="headerTable">
				<rich:column id="DateHeader" headerClass="table-dateCol">
					<f:facet name="header">
						<h:outputText value="Datum"/>
					</f:facet>
				</rich:column>
				<rich:column id="DescriptionHeader">
					<f:facet name="header">
						<h:outputText value="Beschreibung" />
					</f:facet>
				</rich:column>
			</rich:dataTable>
		</div>
Scoller und Tabelleninhalt:
Code:
		<div class="scroller">					
			<rich:dataTable id="Table" styleClass="tableContent"
				rowClasses="#{myBean.rowClasses}" columnClasses="table-dateCol,none"
				binding="#{myBean.table}" 
				var="element"
				value="#{myBean.resultList}">
				
				<a4j:support event="onRowClick" action="#{myBean.takeSelection}"/>
				
				<rich:column id="Date" sortBy="#{element.date}" sortOrder="DESCENDING">
					<h:outputText value="#{element.date}"/>
				</rich:column>
				<rich:column id="Description">
					<h:outputText value="#{element.description}" />
				</rich:column>
			</rich:dataTable >
		</div>
	</h:panelGroup>
Ajax CommanButtons:
Code:
	<rich:spacer height="10px"/>

	<h:panelGroup>
		<h:panelGrid columns="4" style="float:right;" >
			<h:column>
				<a4j:commandButton value="Show Detail" styleClass="tableButtons" reRender="detailTable"
					oncomplete="javascript:Richfaces.showModalPanel('detailPanel');"/>
			</h:column>
			<h:column>
				<a4j:commandButton value="Edit" styleClass="tableButtons" reRender="editTable"
					oncomplete="javascript:Richfaces.showModalPanel('editPanel');"/>
			</h:column>
			<h:column>
				<a4j:commandButton value="New" styleClass="tableButtons" reRender="newTable"
					action="#{myBean.emptyData}" 
					oncomplete="javascript:Richfaces.showModalPanel('newPanel');"/>
			</h:column>
			<h:column>
				<a4j:commandButton value="Delete" styleClass="tableButtons" 
					reRender="table" action="#{myBean.deleteData}" />
			</h:column>
		</h:panelGrid>
	</h:panelGroup>

</h:panelGrid>


In my BackingBean:
Code:
//Colors the selection and saves it
	public String takeSelection(){
		if (table.isRowAvailable()){

			this.setSelection((Data)table.getRowData());
			
			Integer row = table.getRowIndex();
			rowClasses = "";
			for (int i = 0; i < table.getRowCount(); i++) {
				if (i == row){
					rowClasses = rowClasses + "selectedRow,";
				} else {
					rowClasses = rowClasses + "none,";	
				}
			}		
		} else System.out.println("No row available!!");
		return null;
    	}


Modal Panel (show detail):
Code:
<rich:modalPanel id="detailPanel" autosized="true" >
   	<f:facet name="header">
   		<h:outputText value="Selected Rows"></h:outputText>
	</f:facet>
	<f:facet name="controls">
		<h:graphicImage id="hidelink" value="/resources/images/exit.gif" styleClass="exitButton"
onclick="javascript:Richfaces.hideModalPanel('detailPanel')"/>
	</f:facet>
	<h:form>
		<h:panelGroup layout="block" style=" width:300px;height:100px;overflow:auto;">
			<rich:dataTable
	    			id="detailTable"
	    			var="selectedItem" 
	    			value="#{myBean.selection}">
				<rich:column id="date">
					<f:facet name="header">
						<h:outputText value="Datum" />
	           			</f:facet>
	           			<h:outputText value="#{selectedItem.date}" />
				</rich:column>
	       			<rich:column id="description">
					<f:facet name="header">
						<h:outputText value="Beschreibung" />
	           			</f:facet>
	           			<h:outputText value="#{selectedItem.description}" />
	       			</rich:column>
			</rich:dataTable>
		</h:panelGroup>
	</h:form>
</rich:modalPanel>
 
T

traysa

Gast
...Fortsetzung:

myBean ist in der faces-config als request eingetragen. die situation ist nun, dass ich zwar einzelne reihen anklicken kann und diese auch farblich hinterlegt werden, allerdings kann er sich die selection nicht merken, da durch den request scope myBean immer wieder neu erstellt wird (sowohl beim reihe anklicken als auch bei buttonklick). ich wollte es auch mit einem hiddenItem versuchen, habe es aber nicht hinbekommen.

vielleicht hatte jemand ja mal das gleiche problem und kann mir weiterhelfen.

mit freundlichen grüßen, traysa
 

starfish0r

Neues Mitglied
Wie du schon geschrieben hast, ist deine myBean mit dem scope "request" definiert. Demnach wird die Bean bei jeder Kommunikation mit dem Server, also mit jedem Klick, neu erstellt und du kannst dir keine Werte in dieser Bean "merken".

Die Loesung erscheint mir gerade relativ simpel:
Stelle das scope-Attribut in der Bean-Definition auf "session".
Dann existiert die selbe Instanz der Bean bei jeder Anfrage, die vom selben Benutzer (vom selben Browser auf dem selben Rechner) kommt. Somit kannst du dir die selection merken.
MfG
 
T

traysa

Gast
danke für die antwort.
leider krieg ich mit der scope-umstellung ein problem an anderer stelle...
inzwischen habe ich es aber nach meinen vorstellungen hinbekommen. jetzt ist nur noch der new-button bei mir ein ajax button, die anderen buttons sind normale buttons.

tschüss ^^
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T JSF/Richfaces rich:dataTable with rich:datascroller Web Tier 1
M Frage zur Konfiguration einer RichFaces DataTable Web Tier 4
S richfaces Datatable horizontal ausgeben Web Tier 2
S Zugang zur List elementen (richfaces) Web Tier 1
G GWT oder RichFaces oder ... Web Tier 5
J JSF Grad der Barrierefreiheit von PrimeFaces, ICEFaces, RichFaces und OpenFaces Web Tier 2
K RichFaces CommandButton mit PopUp verwenden Web Tier 2
M RichFaces zerstörte mein Projekt Web Tier 4
D JSF RichFaces Tree-Beispiel Problem Web Tier 2
F RichFaces Override CSS Web Tier 4
T RichFaces will nicht funktionieren :( Web Tier 2
T RichFaces einbinden Web Tier 4
N JSF [Maven] Seam 2.2, Richfaces 3.3 - a4j wird nicht umgewandelt Web Tier 6
T JSF Simple Anwendung mit Richfaces Web Tier 7
S Richfaces 4.0 Ajax Waitingpanel Web Tier 2
J JSF Richfaces Tabs, dynamisches include funktioniert nicht Web Tier 4
S Richfaces: Column ReRender Web Tier 4
G JSF Richfaces rich:messages Web Tier 13
M JSF Richfaces 2 Kalender kombinieren Web Tier 4
K RichFaces Geschwindigkeit bei Tabellen Web Tier 3
H Richfaces - Taglib Problem gelb unterstrichen Ajax Output Web Tier 6
E JSF 2.0 Wie Richfaces in Eclipse einbinden? Web Tier 25
I JSF 2.0 und RICHFACES/ ICEFACES oder ähnliches? Web Tier 6
B Probleme mit RichFaces Web Tier 2
B Richfaces 3.3.2.SR1 --- Kompatibilität Web Tier 3
N Richfaces + AjaxValidator Web Tier 3
T richfaces + jsf Web Tier 3
L [RichFaces] Applikation wird mit NullPointerException beendet Web Tier 5
W RichFaces converter in orderingList wirft exception Web Tier 5
V Image Map und Ajax-Richfaces Web Tier 5
J Richfaces combobox zeigt Items nicht an Web Tier 4
P Richfaces/Seam: RichShuttleListe funktioniert nicht Web Tier 8
N oncomplete bei Richfaces Web Tier 3
D Richfaces (Seam/Hibernate): dynamische Eingabefelder Web Tier 2
D Eventing in Kombination mit RichFaces bzw. Element.show() Web Tier 2
F Richfaces livedemo Web Tier 1
F RichFaces, Problem mit PickList Web Tier 2
C RichFaces Ajax ReRender funktioniert nicht. Web Tier 2
F RichFaces: JSF-Lifecycle / Validierung Web Tier 2
E RichFaces 3.2.1 Probleme Web Tier 4
F nach Update auf RichFaces 3.2.0 Fehlermeldungen Web Tier 5
K jsf 1.2 tomahawk t:dataTable generic use Web Tier 3
W JSF DataTable - Filter Funktion funktioniert nicht Web Tier 3
W JSF einfache DataTable PrimeFaces Web Tier 1
F JSF h:dataTable fix Header und Scroll Body Web Tier 0
D JSF DataTable konvertiert Felder nicht Web Tier 1
K deleteButton in dataTable geht nur halb Web Tier 8
G JSP dataTable header - Datenwerte verwenden? Web Tier 3
T JSF Primefaces: DataTable Ajax Update - Weiterleitung von anderer Seite Web Tier 11
F Primefaces Datatable => Inplaces Web Tier 3
F Primefaces Datatable Web Tier 6
F.S.WhiTeY JSF h:dataTable / p:komponente Pagination mit Buchstaben. Web Tier 2
jottyfan JSF dataTable und graphicImage (mit JQuery) Web Tier 4
M JSF Composite components - dynamische dataTable? Web Tier 8
M JSF DataTable refreshen mit Ajax? Web Tier 5
M JSF Datatable, nichts geht ohne vorher zu refreshen... Web Tier 4
P JSF 1.2 commandButton in dataTable Web Tier 2
L JSF Überflüssige Methodenaufrufe - dataTable Web Tier 5
T DataTable Composite-Component und ManyToOne Web Tier 5
J JSF Datatable bestimmte Methode Web Tier 4
A [PrimeFaces] dataTable mit paginator Probleme Web Tier 2
O Focus auf Textfeld, in letzter Reihe einer dataTable Web Tier 2
M Datatable und der Zurückbutton Web Tier 4
K JSF Tomahawk dataScroller mit dataTable Web Tier 4
Y dataTable als dynamisches Grid Web Tier 4
E JSF Datatable erst nach Buttonklick anzeigen Web Tier 2
R JSF <rich:datatable> problem Web Tier 4
V JSF: dataTable Getter wird nie aufgerufen Web Tier 6
S JSF dataTable Position feststellen Web Tier 2
S JSF: colspan und rowspan in datatable Web Tier 4
E JSF Datatable leere Zellen anzeigen Web Tier 2
A JSF: Datatable Links mit Properties Web Tier 3

Ähnliche Java Themen

Neue Themen


Oben