DataTable with controls (update state)
yevgen_78 Jun 1, 2007 9:10 AMHi,
i'm using richtfaces 3.0.0 (java 1.5, Tomcat 5.5)
Trying to create an datatable with 1 row, 1 column (with HtmlInput).
In future of course will be more rows and columns :)
My jsp
...
<h:form>
<rich:dataTable binding="#{jobsBean.table}"/ >
<h:commandButton action="back" value="Submit" />
</h:form>
...
My JobsBean
public class JobsBean
{
private HtmlDataTable table = null;
private List list = null;
public class TestClass
{
String text;
public String getText() { return text; }
public void setText(String text) { this.text = text; }
}
public JobsBean()
{
this.list = new ArrayList();
this.list.add(new TestClass());
}
public HtmlDataTable getTable()
{
return table;
}
public void setTable(HtmlDataTable table)
{
this.table = table;
if (this.created == false)
{
createTable();
this.created = true;
}
}
private void createTable()
{
Application application = FacesContext.getCurrentInstance()
.getApplication();
this.table.setColumns(1);
this.table.setVar( "job" );
ValueBinding vb = application.createValueBinding("#{job.text}");
HtmlColumn column = (HtmlColumn) application
.createComponent(HtmlColumn.COMPONENT_TYPE);
HtmlInputText input = (HtmlInputText) application
.createComponent(HtmlInputText.COMPONENT_TYPE);
input.setValueBinding("value", vb);
column.getChildren().add(input);
input.setImmediate(true);
this.table.getChildren().add(column);
ValueBinding value = application.createValueBinding("#{jobsBean.list}");
this.table.setValueBinding("value", value);
}
public List getList() { return list; }
public void setList(List list) { this.list = list; }
And ... nothing happens. If i entered the text into the editor and press button ... the page refreshed but the editor is empty.
Very interesting if i add the column and editor not from the bean, but simple in the jsp page, like
<rich:dataTable binding="#{jobsBean.table}" var="job" >
<h:column>
<h:inputText value="#{job.text}" />
</h:column>
</rich:dataTable>
it works!
There is the difference between adding dynamicly (from the bean) and static (jsp)