Slickgrid: как узнать, какие строки грязные - PullRequest
1 голос
/ 06 июня 2011

Slickgrid довольно хорош! В отключенном режиме пользователь вносит некоторые изменения. По завершении работы изменения должны быть сохранены на сервере. Хотелось бы узнать, есть ли удобный способ обновить базу. dataview содержит последние данные, известно ли об изменениях, произошедших после загрузки (например, удаленные строки), или нам нужно отслеживать изменения самостоятельно?

Ответы [ 2 ]

2 голосов
/ 06 июня 2011

Вы можете использовать событие onCellChanged или пользовательский editCommandHandler, чтобы пометить строки как грязные и просто сделать Ajax-вызов для обновления этих строк. Все более сложная синхронизация зависит от вас - у SlickGrid для этого нет помощников.

0 голосов
/ 08 июня 2011

У меня не было проблем с использованием события onCellChanged, когда это было возможно.
Теперь я пытаюсь использовать событие onSelectedRowsChanged, чтобы получить идентификатор строки удаляемой строки.

Но grid.getSelectedRows () возвращает только номер строки на текущей странице. Поэтому у меня проблема с получением идентификатора строки, когда сетка фильтруется или не отображает первую страницу.

Полагаю, есть некоторый набор данных, который управляет текущим видом, но я не могу его найти.

Так что же является лучшим решением для извлечения rowid из номера строки в соответствии с текущим представлением? С уважением


Обновление:
Наконец, я передумал, создав в grid.js функцию, которая возвращает идентификатор строки последней выбранной строки (а не массив, позволяющий удалять только одну строку)

  "getSelectedRowID":     getSelectedRowID,

, который я использую так:

-> получить идентификатор текущей строки

grid.onSelectedRowsChanged = function (e, args) {
    currentID = grid.getSelectedRowID();
    .....
    }

-> и удалить эту строку, если нажата клавиша удаления

grid.onKeyDown = function (e) {
      // delete key
      if (e.keyCode == 46) {
      if (confirm('confirmez-vous la suppression de la ligne : ' + currentID)) {
                dataView.deleteItem(currentID);
                deletedRowIds.push(currentID);
          }
          return true;
      }
   ....
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...