Как программно установить или изменить значение конкретной ячейки? - PullRequest
0 голосов
/ 12 февраля 2019

Используя чистый массив в качестве источника данных (не DateView) для инициализации SlickGrid, я хочу изменить значение после создания сетки в определенной строке / столбце (ячейке).

Вот простой пример, который также можно найти как работающий JSFiddle , и я хочу, например, изменить значение «Продолжительность» в строке 3 («Задача 2») с «5 дней»до "7 дней".

<div id="myGrid" style="width:400px;height:400px;"></div>   

<script>
  var grid;
  var columns = [
    {id: "title", name: "Title", field: "title"},
    {id: "duration", name: "Duration", field: "duration"},
    {id: "%", name: "% Complete", field: "percentComplete"},
    {id: "start", name: "Start", field: "start"},
    {id: "finish", name: "Finish", field: "finish"},
    {id: "effort-driven", name: "Effort Driven", field: "effortDriven"}
  ];

  var options = {
    enableCellNavigation: true,
    enableColumnReorder: false
  };

  $(function () {
    var data = [];
    for (var i = 0; i < 500; i++) {
      data[i] = {
        title: "Task " + i,
        duration: "5 days",
        percentComplete: Math.round(Math.random() * 100),
        start: "01/01/2009",
        finish: "01/05/2009",
        effortDriven: (i % 5 == 0)
      };
    }

    grid = new Slick.Grid("#myGrid", data, columns, options);
    grid.setSelectionModel(new Slick.CellSelectionModel());

    /* needed method */
    grid.setCellValue(2, 1, "7 days");
    /* or */
    grid.setCellValue(2, "duration", "7 days");

  })
</script>

Похоже, что метод, как

grid.setCellValue(row, column, value);

не существует.

Есть ли способ (или существующий метод, который я не сделалпока не найдено) чтобы достичь этого без использования DataView?

1 Ответ

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

Просто используйте

data[2].duration = "7 Days";

, а затем обновите сетку:

grid.invalidateAllRows();
grid.render();

Сетка имеет только вспомогательные методы отображения, хотя вы можете получить данные с помощью grid.getData().Редакторы, если они используются, содержат код для извлечения значения из строки (data[n]) и записи его в пользовательский интерфейс редактора, а затем возвращаются другим способом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...