...
Code Block |
---|
title | Update by DataSource |
---|
|
private void updateAllonRefresh() {
DataSource dataSource = listGrid.getDataSource();
Criteria criteria = listGrid.getCriteria();
dataSource.fetchData(criteria, createUpdateAllCallback());
}
|
Code Block |
---|
title | Handle server response |
---|
|
private DSCallback createUpdateCallback() {
returnInteger[] visibleRows = listGrid.getVisibleRows();
Integer startRow = 0;
Integer endRow = (visibleRows[1] + listGrid.getResultSet().getResultSize());
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();
ResultSet resultSet = new ResultSet(dataSource);
resultSet.setInitialLength(response.getTotalRows());
resultSet.setInitialData(response.getData());
listGrid.setData(resultSet);
}
};
}
|
Transparent update range
For transparent loading the data range should be used DSRequest. It allows you to specify a range of data to load.
Code Block |
---|
title | Update by DataSource |
---|
|
private void updateRange() {
DataSource dataSource = listGrid.getDataSource();
Criteria criteria = listGrid.getCriteria(.setInitialSort(listGrid.getSort());
Integer[] visibleRows = listGrid.getVisibleRows(); Integer
startRow = 0; Integer endRow = (visibleRows[1] + listGrid.getResultSet().getResultSize()setData(resultSet);
DSRequest request = new}
DSRequest();
request.setStartRow(startRow);
request.setEndRow(endRow);
dataSource.fetchData(criteria, createUpdateCallback()}, request);
}
|
Attachments