Versions Compared

Key

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

...

Code Block
titleUpdate by DataSource
final com.smartgwt.client.data.private void updateAll() {
    DataSource dataSource = listGrid.getDataSource();
com.smartgwt.client.data.
    Criteria criteria = listGrid.getCriteria();
    dataSource.fetchData(criteria, createUpdateAllCallback());
}
Code Block
titleHandle server response
new com.smartgwt.client.data.private DSCallback createUpdateCallback() {
    return new DSCallback() {
        @Override
        public void execute(com.smartgwt.client.data.DSResponse response, Object rawData, com.smartgwt.client.data.DSRequest request) {
        com.smartgwt.client.data.    DataSource dataSource = listGrid.getDataSource();

            ResultSet resultSet = new com.smartgwt.client.data.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
final com.smartgwt.client.data.private void updateRange() {
    DataSource dataSource = listGrid.getDataSource();
com.smartgwt.client.data.
    Criteria criteria criteria = listGrid.getCriteria();

    Integer[] visibleRows = listGrid.getVisibleRows();
    Integer startRow = visibleRows[0];
    Integer endRow = (visibleRows[1];
com.smartgwt.client.data.DSRequest request = new com.smartgwt.client.data.DSRequest();
int preloadSize = 10;
request.setStartRow(((startRow - preloadSize) < 0) ? 0 : (startRow - preloadSize));
request.setEndRow(endRow + preloadSize);
dataSource.fetchData(criteria, new com.smartgwt.client.data.DSCallback() {
    @Override
    public void execute(com.smartgwt.client.data.DSResponse response, Object rawData, com.smartgwt.client.data.DSRequest request) {
        com.smartgwt.client.data.ResultSet resultSet = new com.smartgwt.client.data.ResultSet(dataSource + listGrid.getResultSet().getResultSize());

    DSRequest request = new DSRequest();
        resultSet.setInitialLength(response.getTotalRows())request.setStartRow(startRow);
        com.smartgwt.client.data.Record[] records;
        if (response.getStartRow() == 0) {
            records = response.getData()request.setEndRow(endRow);

       } else {
            records = new com.smartgwt.client.data.Record[response.getTotalRows()];
            System.arraycopy(response.getData(), 0, records, response.getStartRowdataSource.fetchData(criteria, createUpdateCallback(), response.getData().length);
        }
        resultSet.setInitialData(records);
        listGrid.setData(resultSet);
    }
}, request);
request);
}

Attachments

Attachments