myfaces-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From TobiTobsen <tobias_dieder...@gmx.net>
Subject DataTable with Inputfields Problem
Date Mon, 07 May 2007 14:48:37 GMT

Hello,
I write a program which should show Data in a Table and the user should be
able to edit them.
The Table has to be generated dynamicaly. For simplicity I create a table
with 2 cols und 2 rows. When I run the application there appears a problem.
The valueChanged - Method is just called when I change the value of one of
the two fields in the first column.
Why isnt the Method called when I change the value of a field of the second
column?

My jsp-File looks as followed:
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t" %>

<html>
	<head>
		<title>Vitax Web 1.0</title>
	</head>
	<body>
		<f:view>
		<h:form id="taxForm">
    		<t:dataTable id="taxTable" var="row" value="#{taxTable.tableModel}">
    			<t:columns value="#{taxTable.columnModel}" var="col">
    				<f:facet name="header">
    					<h:outputText value="#{col}" />
    				</f:facet>
				<t:inputText id="in" value="#{row[taxTable.columnModel.rowIndex]}"
					valueChangeListener="#{taxTable.valueChanged}" immediate="true"   
					onchange="submit()"> 		
				</t:inputText>	
    			</t:columns>
    		</t:dataTable> 		
		</h:form>
		</f:view>
	</body>	
</html> 

Here is the code for the taxTable SessionBean:
public class TaxTable {
	private javax.faces.model.ListDataModel tableModel;
	private javax.faces.model.ListDataModel columnModel;
	public SessionBean() {
	}

	public void valueChanged(ValueChangeEvent evt) {
		System.out.println("Old Value: "+evt.getOldValue().toString());
		System.out.println("New Value: "+evt.getNewValue().toString());
	}
	

	
	public javax.faces.model.ListDataModel getTableModel() {
		if(tableModel == null) {
			Object[] o1 = new Object[] {"Zeile 1", new Integer(1)};
			Object[] o2 = new Object[] {"", new Integer(2)};
			List<Object[]> l = new ArrayList<Object[]>();
			l.add(o1);
			l.add(o2);		
			tableModel = new ListDataModel(l);
		}
		return tableModel;
	}

	public void setTableModel(javax.faces.model.ListDataModel tableModel) {
		this.tableModel = tableModel;
	}

	public javax.faces.model.ListDataModel getColumnModel() {
		if(columnModel == null) {
			String[] o1 = new String[] {"Spalte1", "Spalte2"};
			List<String> l = new ArrayList<String>();
			l.add(o1[0]);
			l.add(o1[1]);
			columnModel = new ListDataModel(l);
		}
		return columnModel;
	}

	public void setColumnModel(javax.faces.model.ListDataModel columnModel) {
		this.columnModel = columnModel;
	}
}

Please help me.
Thx!

-- 
View this message in context: http://www.nabble.com/DataTable-with-Inputfields-Problem-tf3704159.html#a10358693
Sent from the MyFaces - Users mailing list archive at Nabble.com.


Mime
View raw message