2015-04-19 3 views
0

Я использую jaydata для управления хранилищем данных только для клиентов. Данные принимаются через Broadcast SignalR. Полученные данные буферизуются в памяти. Через секунду буфер памяти сбрасывается в хранилище jaydata и сохраняется.Jaydata как KendoDataSource автоматически не обновляется при добавлении новой записи

Сетка Кендо, связанная с магазином jaydata, не обновляется автоматически. Мне нужно вызвать метод read на источнике данных после завершения метода jaydata saveChanges. Ниже приведен код, который вызывается при срабатывании таймера.

В моей Кендо сетке, я определил DATASOURCE следующим образом:

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" }); 

I ожидал, что связанный с сетью источник данных автоматически обнаружит, что базовое хранилище данных изменилось.

Ожидается ли, что необходимо заставить источник данных читать?

Заранее благодарю вас за помощь.

ответ

0

Не ожидается обнаружение изменений. Это то же поведение, что и при подключении вашей сетки к серверу, вы не будете уведомлены об изменениях. У вас либо есть встроенный опрос, либо push-уведомление по своему усмотрению.

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

context.Dogs.addEventListener('afterUpdate', function(){ alert('doggy updated'); });

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

Получайте удовольствие, JayData и Kendo немного изменчивый брак. :)