как восстановить магазин extjs4? - PullRequest
1 голос
/ 11 сентября 2011

Модель:

Ext.define('Voting', {
    extend: 'Ext.data.Model',
    hasMany: [
        {model: 'VotingQuestion', name: 'questions'}
    ]
}

и:

grid.bindStore(voting.questions())

, затем используйте RowEditing, чтобы добавить / отредактировать / удалить / восстановить сетку

после этого, если я нажмукнопка отмены, есть ли какой-нибудь простой способ восстановить 'вопросы' к состоянию инициализации (кроме перезагрузки хранилища с сервера)?

спасибо

Ответы [ 3 ]

1 голос
/ 12 сентября 2011

Может быть, не совсем то, что вы хотите, но вы пробовали

 grid.getStore().each(function(record){
      record.reject();
 })
1 голос
/ 18 сентября 2011
1 голос
/ 11 сентября 2011

Это зависит от того, как вы реализовали функцию редактирования строк.Если вы сделали это, чтобы сохранить изменения в реальном времени, я боюсь, что вам придется позвонить на сервер, чтобы привести его в исходное состояние.

В случае, если вы сохраните состояние нескольких транзакций вна стороне клиента, тогда вы можете иметь что-то вроде средства UnDo / ReDo, где пользователь может отменить или повторить последние транзакции, не обращаясь к серверу.Это, в основном, проектное решение, хотите ли вы использовать сетевой чат для каждого редактирования или хотите иметь грубую сохранность данных, состоящую из нескольких транзакций.

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

Вы можете взглянуть на extjs-timeline , цели цели которого

Проект Timeline является расширением библиотеки интерфейса ExtJS.Его цели просты:

Provide a framework for undo/redo of user events.
Be generic enough for widespread basic use.
Be extensible enough for easy customization.
Be free to everyone, for any purpose, personal or commercial.

РЕДАКТИРОВАТЬ: Проверьте этот пример, это также имеет задержанный механизм сохранения данных.

...