Table of Contents |
---|
Description
ListGrid displays a list of objects in a grid, where each row represents one object and each cell in the row represents one property.
...
Transparent update
For transparent loading of the data the fetchData method should be used fetchData method.
Code Block | |||||||
---|---|---|---|---|---|---|---|
|
| ||||||
private void onRefresh() { DataSource dataSource = listGrid.getDataSource(); Criteria criteria = listGrid.getCriteria(); Integer[] visibleRows = listGrid.getVisibleRows(); // request one page's worth of data on either side of the current viewport Integer startRow = visibleRows[0] - listGrid.getResultSet().getResultSize(); Integer endRow = (visibleRows[1] + listGrid.getResultSet().getResultSize(); if (startRow < 0) { startRow = 0; } DSRequest request = new DSRequest(); request.setStartRow(startRow); request.setEndRow(endRow); request.setSortBy(listGrid.getSort()); dataSource.fetchData(criteria, new DSCallback() { @Override public void execute(DSResponse response, Object rawData, DSRequest request) { DataSource dataSource = listGrid.getDataSource(onRefreshed(response); } ResultSet resultSet = new ResultSet(dataSource);}, request); } private void onRefreshed(DSResponse response) { DataSource dataSource = listGrid.getDataSource(); ResultSet resultSet = new ResultSet(dataSource); resultSet.setInitialLength(response.getTotalRows()); // correctly position the result in the resultSet.setInitialData(resultset's cache Record[] result = response.getData()); Record[] initialData = resultSet.setInitialSort(listGrid.getSort())new Record[response.getTotalRows()]; System.arraycopy(result, 0, initialData, response.getStartRow(), result.length); listGridresultSet.setDatasetInitialData(resultSetinitialData); resultSet.setInitialSort(listGrid.getSort()); } resultSet.setCriteria(listGrid.getCriteria()); }, requestlistGrid.setData(resultSet); } |
Attachments
Attachments |
---|