Как обрабатывать привязку данных элементов с помощью сетки vaadin при использовании dataProvider - PullRequest
0 голосов
/ 19 февраля 2019

Я использую следующий пример из документов Vaadin с Polymer3

<vaadin-grid id="grid" aria-label="Remote Data Example">
  <vaadin-grid-column path="firstName"></vaadin-grid-column>
  <vaadin-grid-column path="lastName"></vaadin-grid-column>
  <vaadin-grid-column path="email"></vaadin-grid-column>
</vaadin-grid>
<script>
  window.addEventListener('WebComponentsReady', function() {
    const grid = document.querySelector('vaadin-grid');

    grid.size = 200;
    grid.dataProvider = function(params, callback) {
      var xhr = new XMLHttpRequest();
      xhr.onload = function() {
        callback(JSON.parse(xhr.responseText).result);
      };
      var index = params.page * params.pageSize;
      xhr.open('GET', 'https://demo.vaadin.com/demo-data/1.0/people?index=' + index + '&count=' + params.pageSize, true);
      xhr.send();
    };
  });
</script>

Я не мог понять, как обновить строку из загруженных элементов с помощью привязки данных полимера

Я пыталсячтобы получить доступ к свойству items в сетке, используя this.$.grid.items, но это всегда возвращает количество элементов

. Я хочу иметь возможность сделать что-то вроде this.$.grid.items[0].firstName = 'changed' и отразить изменение в сетке

Любая помощь приветствуется

1 Ответ

0 голосов
/ 21 февраля 2019

В настоящее время нет API для обновления одного элемента при использовании dataProvider.Одним из вариантов является использование grid.clearCache(), который снова создает данные запроса сетки для видимых строк.Конечно, в этом случае было бы полезно хранить элементы в дополнительном кэше, чтобы избежать ненужных запросов к серверу.Если вы используете path или renderer, вы также можете вызвать grid.render() после изменения подсвойства элемента.

см. vaadin / vaadin-grid # 1526 и соответствующий форумнить

...