-
1. Re: Building a datatable from a DB Table
ilya_shaikovsky Dec 16, 2009 2:49 AM (in response to skmali)http://livedemo.exadel.com/richfaces-demo/richfaces/columns.jsf
columns component should fit your needs
-
2. Re: Building a datatable from a DB Table
skmali Dec 21, 2009 2:38 PM (in response to ilya_shaikovsky)Thank you Ilya Shaikovsky for your reply.
I am looking for something like below...
I am trying to build a datatable in the backing bean, I need sorting, filtering and pagination features to be added to the datatable. Can anyone please help on this?
Below is my code:
private void populateDynamicDataTable() {
HtmlDataTable dynamicDataTable = new HtmlDataTable();
dynamicDataTable.setValueExpression("value", createValueExpression(
"#{tableDataBean.dynamicList}", List.class));
dynamicDataTable.setVar("dynamicItem");String tableName = getSessionBean().getSlectedTable();
if (tableName != null) {
ArrayList<String> headersFromDB = new ArrayList<String>(
tableService.getColumnNames(tableName));
ArrayList<String> dynamicHeaders = new ArrayList<String>();
dynamicHeaders.add("Select");for (String header : headersFromDB) {
dynamicHeaders.add(header);
}
dynamicList = tableService.getTableData(tableName);// Iterate over columns.
for (int i = 0; i < dynamicList.get(0).size(); i++) {// Create <h:column>.
HtmlColumn column = new HtmlColumn();
dynamicDataTable.getChildren().add(column);// Create <h:outputText value="dynamicHeaders[i]"> for <f:facet
// name="header"> of column.
HtmlOutputText header = new HtmlOutputText();
header.setValue(dynamicHeaders.get(i));
column.setHeader(header);if (i == 0) {
HtmlSelectBooleanCheckbox checkbox = new HtmlSelectBooleanCheckbox();
checkbox.setValueExpression("value", createValueExpression(
"#{dynamicItem[" + 0 + "]}", Boolean.class));
column.getChildren().add(checkbox);
} else {// Create <h:outputText value="#{dynamicItem[" + i + "]}">
// for the body of column.
HtmlOutputText output = new HtmlOutputText();
output.setValueExpression("value", createValueExpression(
"#{dynamicItem[" + i + "]}", String.class));
column.getChildren().add(output);
}
}// Add the datatable to <h:panelGroup
// binding="#{myBean.dynamicDataTableGroup}">.
dynamicDataTableGroup = new HtmlPanelGroup();
dynamicDataTableGroup.getChildren().add(dynamicDataTable);
}
}