Я использую jaydata для управления хранилищем данных только для клиентов. Данные принимаются через широковещательную рассылку SignalR. Полученные данные буферизируются в памяти. Раз в секунду буфер памяти сбрасывается в хранилище jaydata и сохраняется.
Kendo Grid, привязанный к хранилищу jaydata, не обновляется автоматически. Мне нужно вызвать метод чтения для источника данных после завершения метода jaydata saveChanges. Код ниже — это метод, который вызывается при срабатывании таймера.
$scope.updateGrid = function () {
if ($scope.allowUpdate) {
var data = $scope.scribeMessages.splice(0, $scope.scribeMessages.length);
if (data.length > 0) {
scribeDb.Messages.addMany(data);
scribeDb.saveChanges().then(function () { $scope.scribeGrid.dataSource.read(); });
}
}
};
В моей сетке кендо я определил источник данных следующим образом:
dataSource: scribeDb.Messages.asKendoDataSource({
pageSize: 20,
sort: [{ field: "SequenceId", dir: "desc" }]
})
Я определил сущность, набор сущностей и обозначение как:
$data.Entity.extend("ScribeMessage", {
SequenceId: { type: "string", required: true, key: true, computed: false },
ScribeId: { type: "string", required: true },
Environment: { type: "string", required: true },
LogLevel: { type: "integer", required: true },
Program: { type: "string", required: true },
Subject: { type: "string", required: false },
Message: { type: "string", required: false },
MachineName: { type: "string", required: true },
InstanceId: { type: "string", required: false },
ComponentId: { type: "string", required: false },
Exception: { type: "string", reguired: false },
ServerTime: { type: "date", required: true },
ClientTime: { type: "date", required: true },
User: { type: "string", required: true }
});
$data.EntityContext.extend("ScribeDatabase", {
Messages: { type: $data.EntitySet, elementType: ScribeMessage }
});
var scribeDb = new ScribeDatabase({ provider: "indexedDb", databaseName: "ScribeMessages" });
Я ожидал, что источник данных, привязанный к сетке, автоматически обнаружит, что базовое хранилище данных изменилось.
Ожидается ли принудительное чтение источника данных?
Спасибо заранее за вашу помощь.