Отобразить данные моей базы данных в моей CellTable, используя AsyncDataProvider<> dataProvider = new AsyncDataProviderJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Отобразить данные моей базы данных в моей CellTable, используя AsyncDataProvider<> dataProvider = new AsyncDataProvider

Сообщение Anonymous »

Я пытаюсь отобразить данные со стороны моего сервера (базы данных) в CellTable. Я использую метод блока кода AsyncDataProvider dataProvider = new AsyncDataProvider для получения данных. Я добавляю метод new Timer() для имитации отображения. Когда я добавляю этот метод, мой код не возвращает данные, на веб-странице отображаются столбцы с заголовками, но не отображаются данные.

Если Я удаляю метод new timer(), который запускает код. Я новичок в GWT и нахожу документацию довольно запутанной при попытке получить данные из базы данных с сервера. Судя по всему, большая часть онлайн-документации обращается к локальным данным.
Это работает:

Код: Выделить всё

AsyncDataProvider dataProvider = new AsyncDataProvider() {

@Override
protected void onRangeChanged(HasData display) {
final com.google.gwt.view.client.Range  range = display.getVisibleRange();
final ColumnSortList sortList = table.getColumnSortList();

ServerServiceAsync.INSTANCE.getServers(new AsyncCallback() {

@Override
public void onSuccess(List result) {
display.setRowCount(result.size());
display.setRowData(0, result);
}

Приведенный ниже код с методом «new timer()» не запускается, он отображает страницу с заголовками таблиц, но без данных:

Код: Выделить всё

AsyncDataProvider dataProvider = new AsyncDataProvider() {

@Override
protected void onRangeChanged(HasData display) {
final com.google.gwt.view.client.Range  range = display.getVisibleRange();
final ColumnSortList sortList = table.getColumnSortList();

ServerServiceAsync.INSTANCE.getServers(new AsyncCallback() {

@Override
public void onSuccess(List result) {
display.setRowCount(result.size());

new com.google.gwt.user.client.Timer() {

@Override
public void run() {
int start = range.getStart();
int end = start + range.getLength();

java.util.Comparator sort = new java.util.Comparator() {

@Override
public int compare(ServersDto o1, ServersDto o2) {
if(o1 == o2) {
return 0;
}
int diff = -1;
if (o1 != null) {
diff = (o2 != null) ? o1.getName().compareTo(o2.getName()) : 1;
}
return sortList.get(0).isAscending() ? diff : -diff;
}
};
result.sort(sort);
List dataInRanger = result.subList(start, end);
display.setRowData(start, dataInRanger);

}

}.schedule(100);
изображение неудачного результата приведено ниже. Я ожидаю, что все 4 столбца ниже будут содержать данные с сервера под каждым полем:
Изображение


Подробнее здесь: https://stackoverflow.com/questions/790 ... taprovider
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»