我是PrimeFaces的新手,我需要一些帮助。 我想添加动态仪表板并在每个面板中添加datalist。 我可以看到带有数据列表的仪表板,但行中没有字符串。
感谢您的帮助
我的代码:
Panel panel=(Panel)application.createComponent(fc,"org.primefaces.component.Panel","org.primefaces.component.PanelRenderer");
panel.setId("measure_" + i);
panel.setHeader(lists.get(i).getName());
panel.setToggleable(true);
panel.setVisible(true);
DataList dataList = (DataList) application.createComponent(fc, "org.primefaces.component.DataList", "org.primefaces.component.DataListRenderer");
List<String> test = new ArrayList();
test.add("foo");
test.add("foo2");
dataList.setValue(test);
panel.getChildren().clear();
panel.getChildren().add(dataList);
getDashboard().getChildren().add(panel);
DashboardColumn column = model.getColumn(i%getColumnCount());
column.addWidget(panel.getId());
答案 0 :(得分:0)
尝试使用值表达式方法:
@ManagedBean(name="bean")
public class ManagedBean{
public List<String> test;
//getter and setter of test
...
DataList dataList = (DataList) application.createComponent(fc, "org.primefaces.component.DataList", "org.primefaces.component.DataListRenderer");
//init test on PostConstruct Method
this.getTest().add("foo");
this.getTest().add("foo2");
ValueExpression ve = application.getExpressionFactory().createValueExpression(fc.getELContext(), "#{bean.test}", Collection.class);
dataList.setValueExpression("value", ve);
...
}
实际上我并没有测试那些代码行,但我成功地使用了这个approch,我觉得它更有用,因为你可以将datamodel绑定到bean并且不会失去对数据的控制。