2014-11-12 2 views
2

Допустим, что у вас есть файл kendo.data.DataSource. , и вы изменяете строку. и ряд стал грязным. , и теперь вы хотите сравнить, был ли изменен конкретный столбец перед сохранением.Хранит ли kendo.data.dataSource старое значение где-нибудь?

Действительно ли kendo.data.DataSource хранит старое значение локально где-то?

Я подозреваю, что это происходит, поскольку кажется, что вы можете позвонить .cancelChanges() и .cancelRow(), однако я не могу найти его.

Я также подозреваю, что вы не должны использовать его.

+0

Вы подключаете источник данных к виджету, подобному элементу управления сеткой? Если это так, в виджете есть события, которые позволяют прослушивать изменения. –

+0

Да, я знаю, однако, я думал, что могу избежать прослушивания событий изменения, если старое значение уже где-то хранится. – ColacX

ответ

3

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

Отображаемые в настоящее время данные/грязные данные, которые будут представлены хранятся в dataSource._data Последние сохраненного значения/не загрязнены данные хранятся в dataSource._pristineData

Грязный флаг также хранятся в _DATA.


В общем, вы не хотите вмешиваться в любую переменную, которая начинается с _. Вы также можете сэкономить текущие данные с помощью функции get/set, предоставляемой kendo. Функция dataSource.data(). Обновите его с той же функцией dataSource.data(myNewData)

+0

ах. Я раньше заметил _pristineData, но когда я посмотрел, он, похоже, содержал те же данные. – ColacX