Sto usando primefaces 5.0 per creare un DataTable dinamica.primefaces colonne statiche e dinamiche in datatable
mio DataObject ha alcuni campi obbligatori e un elenco di "Tupel" opzionale (coppia chiave-valore). L'elenco opzionale può variare nelle dimensioni. Pertanto ho bisogno di un meccanismo dinamico per mostrare un elenco di DataObject in Primefaces.DataTable.
Il mio approccio assomiglia:
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>
Ma questo non funziona. Le colonne dinamiche non sono renderizzate. Come posso risolvere il mio problema?
EDIT: Risultato atteso:
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
Entrambe le soluzioni non risolvono veramente il mio problema. Ho aggiunto un esempio di output alla mia domanda. C'è un modo per ottenere un tavolo come questo? – veote
Hai letto il 1 ° paragrafo? Se si desidera ottenere il layout necessario, è necessario spostare i dati da una riga a un altro e fornire una quantità fissa di colonne. – BalusC
Sì, ho letto. Le mie file hanno la stessa quantità di colonne. Ma il numero di colonne può variare se ottengo un altro set di dati. Per esempio. una volta ci sono 10 valori opzionali (ogni dataobject ha 10). Un altro set può avere 8 valori optinal. – veote