Tôi đang sử dụng Primefaces 5.0 để tạo một dữ liệu động.Thủ tướng các cột tĩnh và động trong datatable
DataObject của tôi có một số trường bắt buộc và Danh sách tùy chọn "tupel" (cặp khóa-giá trị). Danh sách tùy chọn có thể khác nhau về kích thước. Vì vậy, tôi cần một cơ chế năng động để hiển thị một danh sách DataObject trong Primefaces.DataTable.
Tiếp cận của tôi trông giống như:
public class DataObject {
private String staticval1;
private String staticval2;
private List<Tupel> optionalValues;
// .. getter, setter, hashCode, toString.....
}
public class Tupel{
private String id;
private String value;
}
@ManagedBean
@ViewScoped
public class TableOverviewBean {
private List<DataObject> data;
@EJB
private IMyDao myDao;
@PostConstruct
public void init() {
data = myDao.findAll();
}
public List<DataObject> getData() {
return data;
}
public void setData(List<DataObject> data) {
this.data = data;
}
}
<h:form>
<p:dataTable value="#{tableOverviewBean.data}" var="data">
<p:column headerText="static1">
<h:outputText value="#{data.staticval1}" />
</p:column>
<p:column headerText="static2">
<h:outputText value="#{data.staticval2}" />
</p:column>
<p:columns value="#{data.optionalValues}" var="opt" headerText="#{opt.id}">
<h:outputText value="#{opt.value}" />
</p:columns>
</p:dataTable>
</h:form>
Nhưng điều này không làm việc. Các cột động không được hiển thị. Tôi có thể giải quyết vấn đề của mình bằng cách nào?
EDIT: Kết quả mong đợi:
staticval1 | staticval2 | dynamic_id1 | dynamic_id2 | ... | dynmic_idn
----------------------------------------------------------------------
static1a | static2a | dyna_value1a| dyna_value2a | ... | dyna_valu3a
static1b | static2b | dyna_value1b| dyna_value2b | ... | dyna_valu3b
static1c | static2c | dyna_value1c| dyna_value2c | ... | dyna_valu3c
Cả hai giải pháp đều không thực sự giải quyết được vấn đề của tôi. Tôi đã thêm một kết quả ví dụ cho câu hỏi của mình. Có cách nào để có được một cái bàn như thế này không? – veote
Bạn đã đọc đoạn 1 chưa? Nếu bạn muốn đạt được bố cục bạn cần, bạn phải di chuyển dữ liệu từ hàng này sang hàng khác và cung cấp số cột cố định. – BalusC
Có, tôi đã đọc. Các hàng của tôi có cùng số cột. Nhưng số lượng cột có thể thay đổi nếu tôi nhận được một tập dữ liệu khác. Ví dụ. một lần có 10 giá trị tùy chọn (mỗi dataobject có 10). Một bộ khác có thể có 8 giá trị optinal. – veote