KendoUI Grid с наблюдаемой строкой автоматического выбора MVVM после редактирования всплывающего окна

Я использую сетку Kendo UI с MVVM (наблюдаемые). Я пытаюсь автоматически выбрать строку после ее создания или редактирования. Что-то происходит после события «сохранить», которое забивает вызов метода выбора сетки. Мой обходной путь — это очевидный хак (но работает на данный момент), установив тайм-аут 100 мс, чтобы все события и тому подобное завершились. В документах Кендо, похоже, не упоминается событие после «сохранения» (например, «сохраненный» метод или что-то в этом роде). Есть такое животное? Можете ли вы придумать лучший способ сделать это (какое-то место, где я мог бы прикрепить обратный вызов, сделало бы меня счастливее):

...
testRequestEdited: function(e) {
    var uid = e.model.uid;
    console.log(testRequestGrid.tbody.find(">tr[data-uid='"+uid+"']"));
    // some event happens after "save" that clobbers the select
    // this timeout is not the right way, but I will try it for now.
    setTimeout(function() {
        testRequestGrid.select(testRequestGrid.tbody.find(">tr[data-uid='"+uid+"']"));
    }, 100);
},
...

person Mark Lybrand    schedule 25.04.2013    source источник


Ответы (1)


События, инициируемые добавлением новой строки: dataBinding (перед добавлением новой строки), dataBound (когда добавляется новая строка), а затем новые строки переходят в состояние редактирования, немедленно вызывая editevent (с этого момента оно ведет себя как обычное редактирование) . Затем событие save запускается, когда в источник данных вносятся какие-либо изменения, и все это события сетки.

Однако после save также происходит одно событие dataSource - change. Вы можете привязаться к нему после инициализации сетки, как это

$('#grid').data('kendoGrid').dataSource.bind("change",function(e)
  { 
    if(e.action=="itemchange")
    {
      console.log(e)
      //do your stuff
    }
   });

e: change источника данных является последним событием в цепочке.

person ceaggregation    schedule 25.04.2013
comment
Изменение элемента фактически происходит перед сохранением... из консоли: изменение элемента (из обработчика событий изменения источника данных), затем сохранение (из обработчика событий сохранения сетки. - person Mark Lybrand; 26.04.2013
comment
Я просто зашел на страницу демонстраций кендо и привязал «сохранить» к сетке и «изменить» к источнику данных сетки, а «изменить» было после «сохранить». - person ceaggregation; 26.04.2013
comment
Хм. Мне придется еще немного поиграть с этим, потому что это не то поведение, которое я видел. Я явно делаю что-то другое... - person Mark Lybrand; 27.04.2013