2014-05-09 3 views
3

Пытается добавить spinner (kendo.ui.progress), чтобы отображать свернутые операции в процессе, для создания начала spinner в событии сохранения и заканчивая привязкой данных, но для удаления (уничтожения) начала удаления события, но нет способа сказать, когда уничтожён. Существует событие requestEnd, но он никогда не вызывается - возможно, он не поддерживается в старой версии kendo ui.kendo ui requestEnd никогда не называется

Существует еще один способ, который определяет функцию ajax внутри операции уничтожения, например destroy: function (options) {$. Ajax ...}, а также при успешных или неудачных обратных вызовах ajax stop spinner, но я не хочу этого делать ,

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

+0

Какую версию кендо вы используете? –

+0

kendo версия v2012.1.229 @Chaitanya – user2539301

ответ

2

requestStart Используя, sync, requestEnd к показать и скрыть прядильщик не разумно. Таким образом, вы должны написать код для показа и скрытия счетчика в каждом источнике данных. что произойдет, если код показа/скрытия изменится?

Лучшая идея - определить глобальный обработчик, чтобы показать spinner после первого запроса и скрыть счетчик после последнего ответа. Global Ajax Event Handlers является лучшим в этих сценариях.

.ajaxStart(): Register a handler to be called when the first Ajax request begins.

.ajaxStop(): Register a handler to be called when all Ajax requests have completed.


пример:

$(document).ajaxStart(function() { 
    kendo.ui.progress($("#app"), true); 
}); 
//---------------------------------------------- 
$(document).ajaxStop(function() { 
    kendo.ui.progress($("#app"), false); 
}); 
+0

WOW !, лучшее решение, и это сработало, большое вам спасибо за то, что я ответил также на пример. – user2539301

+0

@ user2539301: добро пожаловать, и я счастлив, что решил вашу проблему. Один совет для вас - изменить название вопроса и сделать его более конкретным. И если вы хотите знать, почему 'requestEnd' никогда не будет вызван, откройте еще один новый вопрос. –

0

Вы можете использовать событие sync. Он запускается после того, как источник данных сохраняет изменения элемента данных. http://docs.telerik.com/kendo-ui/api/framework/datasource#events-sync

dataSource : { 
    transport : { 
    read: { 
     url:... 
    } 
    }, 

    sync: function() { 
     kendo.ui.progress($("#loading"), false); 

    } 
} 
+0

версия кендо v2012.1.229 @Chaitanya – user2539301

+0

sync не получает вызов после завершения любого запроса (создать, отредактировать, уничтожить) – user2539301

+0

событие синхронизации не будет запущено, если я не установил параметр autoSync в true, но я делаю не хотите, чтобы autosync был истинным – user2539301

Смежные вопросы