You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by Jeff Bischoff <jb...@klkurz.com> on 2006/10/05 17:50:37 UTC

Re: Drill Down help

You can use this simple dataTable backing bean to help. For more 
complicated options, you can look at the wiki [1].

**************
* Java Class *
**************

public class DataTableBacking {
	
	private final static int DEFAULT_ROWS = 5;
	public final static int NO_ROW_SELECTED = -1;
	
	private List records;
	private int selectedRowIndex;
	private int rowIndex;
	private int rowsPerPage = DEFAULT_ROWS;
	
	public TableData() {
		records = new ArrayList();
	}

	public TableData(List records){
		setRecords(records);
	}

	public List getRecords() {
		return this.records;
	}

	public void setRecords(List records) {
		setRecords(records, DEFAULT_ROWS);
	}
	
	public void setRecords(List records, int rowsPerPage) {
		this.records = records;
		this.rowsPerPage = rowsPerPage;
	}

	public void setRowsPerPage(int rowsPerPage) {
		this.rowsPerPage = rowsPerPage;
	}

	public int getRowsPerPage() {
		return rowsPerPage;
	}
		
	public int getSelectedRowIndex() {
		return selectedRowIndex;
	}

	public void setSelectedRowIndex(int selectedRowIndex) {
		this.selectedRowIndex = selectedRowIndex;
		this.setRowIndex(selectedRowIndex);
	}

	public int getRowIndex() {
		return rowIndex;
	}

	public void setRowIndex(int rowIndex) {
		this.rowIndex = roundDownRowIndex(rowIndex);
	}

	private int roundDownRowIndex(int rowIndex) {
		int page = rowIndex / rowsPerPage;
		int roundedIndex = page * rowsPerPage;
		return roundedIndex;
	}
}

*************
* DataTable *
*************

<t:dataTable id="TheDataTable"
	styleClass="tableBorder"
         headerClass="tableHeader"
         rowClasses="oddRow,evenRow"
         rowStyleClass="#{dataTableBacking.selectedRowIndex == rowIndex 
? 'highlightRow' : null}"
         columnClasses="standardTable_Column"
         value="#{dataTableBacking.records}"
	var="data"
         preserveDataModel="false"
         rows="#{dataTableBacking.rowsPerPage}"
         rowIndexVar="rowIndex"
         first="#{dataTableBacking.rowIndex}"
	>


More info:
[1] http://wiki.apache.org/myfaces/WorkingWithLargeTables

Regards,

Jeff Bischoff
Kenneth L Kurz & Associates, Inc.

Titi Wangsa wrote:
> ok i solved it
> using h:commandbutton
> erm
> new question
> 
> say i have 130 items in a List
> and i use t:dataTable to display them
> and i use a t:dataScroller to scroll through the data
> 
> say a page holds 20 items
> if i drill down, to say, record number 23 on page number 2,
> the details for that record gets displayed..
> no problem
> 
> when i click the "back to list" button,
> the list is displayed, no problem..
> but.. its displayed at the 1st page displaying records 1 to 20
> 
> how do i get it to display records 21-40 (the records it displayed
> before it displayed the record details).
> i've managed to use HtmlDataTable.getFirst() to get first item on the page
> but, i have no idea where to put the HtmlDataTable.setFirst(int value) 
> code.
> 
> 
>