簡體   English   中英

如何使用PrimeFaces以編程方式將DataList添加到面板?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM