Шаблон сетки кендо JS с удаленным источником данных

Я получил таблицу с удаленным источником данных. в одной ячейке я получил идентификатор пользователя. Поскольку я хочу показать имя пользователя вместо идентификатора пользователя, я сделал пользовательскую функцию шаблона:

function getUserName(pmcreator){
    var user = '';
    var data = ''
    ds_userList.fetch(function(){
        var data = this.data();
        for(var i = 0, length = data.length; i < length; i++){
            if(data[i].uID == pmcreator){
                console.log(data[i].uLastname)
                user = data[i].uLastname
            }
        }
    });
    return user
}

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

Любая идея? Я нахожу тысячи примеров, но все со статическими локальными данными. Мне нужен один с удаленным, сеткой и данными шаблона.

1 ответ

Вероятно, это связано с тем, что когда вы вызываете dataSource.fetch, он запускает асинхронную функцию, которая заставляет поток, выполняющий шаблон, продолжать работу. Согласно кендо, вам нужно будет вернуть элемент управления, а затем установить содержимое этого элемента управления в обратном вызове.

Быстрый пример с использованием категорий Northwind... Вот функция шаблона

function getDetails(e) {
 $.getJSON("http://services.odata.org/V3/Northwind/Northwind.svc/Categories", null, function(data) {
    var category = data.value.filter(function(item, i) {
      return item.CategoryID === e.CategoryID;
    });
    $("#async_" + e.CategoryID).html(category[0].Description);
  });

   return "<div id='async_" + e.CategoryID + "'></div>";
}

http://jsbin.com/ODENUBe/2/edit

Я продолжал получать максимальный стек вызовов с рекурсивной ошибкой, когда просто пытался извлечь dataSource, поэтому я переключился на простой getJSON, но он должен работать примерно так же.

Другие вопросы по тегам