on 10-19-2009 2:10 AM
I am trying to create a sortable HTMLB table using the following document.
But after I click on the header, the page refreshes but doesn't sort the table. I can see the onHeaderClick method being called and the SortTableModel (Code from Appendix-A in the document) is also called to sort the table but the result doesn't show up on the page.
I am assuming that its probably the "request_attr" that the document refers to that I don't fully understand... any help is appreciated. My code is below.
Also I have spent 2 days trying to sort the table but to no avail. Is "request_attr" supposed to be the table's name, or model name or what??
Here is the code part 1 of 2
public void buildWelcomePage() {
ResourceBundle res = request.getResourceBundle();
TextView txt = new TextView("userMsg");
Vector colNames = new Vector(Arrays.asList(new String[] { "Name", "Agr. Level", "Hits" }));
Vector dataVec = createData();
SortTableModel model = new SortTableModel(dataVec, colNames, 3);
TableView tableView = new TableView("tableView", model);
tableView.setHeaderVisible(true);
tableView.setHeaderText("User History");
tableView.setFooterVisible(true);
tableView.setDesign(TableViewDesign.ALTERNATING);
for (int i = 1; i <= tableView.getColumnCount(); i++) {
tableView.getColumn(i).setTitle(request.getResourceBundle().getString(tableView.getColumnName(i)));
tableView.getColumn(i).setOnHeaderSort("onHeaderClick");
}
setSortTable(tableView, ((SortTableModel)tableView.getModel()).getColumnSortStatus(), "onHeaderClick");
form.addComponent(tableView);
IPortalComponentSession session = request.getComponentSession();
session.putValue("tableView", tableView.getModel());
}
public void setSortTable( TableView tableView, Vector columnList, String sortMethod)
{
tableView.setOnHeaderClick(sortMethod);
Integer val = new Integer(0);
TableSortState state = TableSortState.NONE;
if (columnList != null) {
for (int i = 0; i < tableView.getColumnCount(); i++) {
val = (Integer) columnList.get(i);
switch (val.intValue()) {
case 0 :
state = TableSortState.NONE;
break;
case 1 :
state = TableSortState.DESCENDING;
break;
case -1 :
state = TableSortState.ASCENDING;
break;
}
tableView.getColumn(i + 1).setSortState(state);
}
}
}
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Here is the code part 2 of 2
private Vector createData() {
Vector dataVec = new Vector();
Vector retVector = new Vector();
dataVec = new Vector();
dataVec.addElement("D");
dataVec.addElement("Daisy");
dataVec.addElement("Doodle");
retVector.addElement(dataVec);
dataVec = new Vector();
dataVec.addElement("C");
dataVec.addElement("Cherry");
dataVec.addElement("Crimson Roll");
retVector.addElement(dataVec); /* 3st entry */
dataVec = new Vector();
dataVec.addElement("A");
dataVec.addElement("Apple");
dataVec.addElement("Apricot");
retVector.addElement(dataVec); /* 4nd entry */
dataVec = new Vector();
dataVec.addElement("B");
dataVec.addElement("Bananna");
dataVec.addElement("Blue Berry");
retVector.addElement(dataVec); /* 4nd entry */
return retVector;
}
public void onHeaderClick(Event event) {
IPortalComponentRequest request = (IPortalComponentRequest) this.getRequest();
IPortalComponentSession session = request.getComponentSession();
SortTableModel model = (SortTableModel) session.getValue("tableView");
try{
TableHeaderSortEvent tHEvent = (TableHeaderSortEvent)event;
if (model != null){
model.sortByColumn(tHEvent.getColumn()-1);
request.getServletRequest().setAttribute("tableView",model);
}
session.putValue("tableView", model);
}
}
User | Count |
---|---|
77 | |
11 | |
8 | |
8 | |
6 | |
6 | |
6 | |
5 | |
5 | |
5 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.