Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
titleUpdate by DataSource
private void updateAllonRefresh() {
    DataSource dataSource = listGrid.getDataSource();
    Criteria criteria = listGrid.getCriteria();

    dataSource.fetchData(criteria, createUpdateAllCallback());
}
Code Block
titleHandle 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
titleUpdate 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

Attachments