[英]How to add DataList to panel programmatically with PrimeFaces?
我是PrimeFaces的新手,我幾乎不需要幫助。 我想添加動態儀表板,並在每個面板中添加數據列表。 我可以看到帶有數據列表的儀表板,但是行中沒有字符串。
謝謝你的幫助
我的代碼:
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());
嘗試使用值表達方法:
@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);
...
}
實際上,我沒有測試該代碼行,但是我成功地使用了此方法,並且我認為它更有用,因為您可以將數據模型綁定到bean,並且不會失去對數據的控制權。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.