2013-02-21 5 views
0

Я совершенно новичок в kendoUI и json, моя проблема в том, что кажется, что данные не загружаются, может быть, некорректная схема или что-то, не получают никаких ошибок, просто загружается сборка все время. Вот мой пример кода:KendoUI и json

$(document).ready(function() { 
    clientDS = new kendo.data.DataSource({ 
     transport: { 
      read: { 
       url: "http://localhost/JSON_MP.asmx/GetListCountries?developerId=101&developerHash=9df7273b410761f74331bde746e5c2354b73b487&timestamp=1242207092430", //Note the URL path! 
       dataType: "json", 
       contentType: "application/json; charset=utf-8" 

      } 
     }, 
     schema: { 
      data: "listValues"    
     } 
    }); 

    $("#kendoCboClient").kendoComboBox({ 
     placeholder: "Select a Country...", 
     dataTextField: "name", 
     dataValueField: "id", 
     dataSource: clientDS 
    }); 
}); 

и мои данные стека:

{ "errorString": "хорошо", "ERRORCODE": 0, "listValues": [{ "Имя": "UNKNOWN "," id ": 1}, {" name ":" South Africa "," id ": 2}, {" name ":" Mozambique "," id ": 3}, {" name ":" Philippines " , "id": 4}, {"name": "Namibia", "id": 5}, {"name": "United Arab Emirates", "id": 6}, {"name": "England" , "идентификатор": 7}, { "имя": "Свазиленд", "ID": 8}, { "имя": "Португалия", "идентификатор": 9}, { "имя": "Греция",» идентификатор ": 10}, {" имя ":" Маврикий», "идентификатор": 11}, { "имя": "ТАНЗАНИЯ", "идентификатор": 12}, { "имя": "Ботсвана", "идентификатор" : 13}, { "имя": "Испания", "ID": 15}, { "имя": "Шотландия", "идентификатор": 16}, { "имя": "Австралия", "ID": 17 }, {"name": "Новая Зеландия", "id": 18}, {"name": "Cyprus", "id": 19}, {"name": "United States", "id": 20}, { "имя": "Германия", "идентификатор": 21}, { "имя": "", "идентификатор": 22}, { "имя": "Мадагаскар", "идентификатор": 23}, {«name»: «Malaysia», «id»: 24}, {«name»: «Seychelles», «id»: 25}], «listType»: «Country»}

Если кто-то может просто указать меня в правильном направлении или что-то еще, обратите внимание, что в стеке данных я использую объекты «listValues», может быть, потому что «errorString»: «ok», «errorCode»: 0, «часть, которая является проблемой ?

+0

Использовать обратный вызов 'schema.parse', чтобы узнать, какой ответ' DataSource' получает, и попробуйте вместо этого возвратить 'report.listValues' использования 'schema.data'. –

ответ

0

У меня была аналогичная проблема - никаких данных и никаких ошибок. Фактическая проблема заключалась в том, что страница, возвращающая данные json, отправляла заголовок типа «html» вместо «application/json». Эта проблема действительно рассматривается здесь: http://docs.kendoui.com/tutorials/PHP/build-apps-with-kendo-ui-and-php (прокрутка на полпути вниз к разделу «Нет данных ...») и исправлена, если вы отправляете правильный заголовок типа контента.

2

Я только что пробовал ваш код и работал отлично! Мне только пришлось изменить строку кода: url, так как, разумеется, я не разворачивал файл по тому же пути, что и вы.

так сказал ...:

  1. Попробуйте открыть в вашем браузере url как вы ввели его в свой код и убедитесь, что он на самом деле возвращает JSON, что вы включили в свой вопрос.
  2. Если предыдущий пункт работает нормально, то если в вашем браузере есть инструменты для разработчиков, убедитесь, что в консоли браузера нет ошибки.
  3. Если у вас нет инструментов разработчика или не знают, как использовать их, попробуйте:

.

var clientDS = new kendo.data.DataSource({ 
    transport: { 
     read: function (options) { 
      $.ajax({ 
       url : "http://localhost/JSON_MP.asmx/GetListCountries?developerId=101&developerHash=9df7273b410761f74331bde746e5c2354b73b487&timestamp=1242207092430", 
       data : options.data, 
       success: function (result) { 
        alert("Good!"); 
        options.success(result); 
       }, 
       error : function (xhr, textStatus, errorThrown) { 
        alert("bad!: " + xhr.status + " - " + textStatus + " - " + errorThrown); 
       } 
      }); 
     } 
    }, 
    schema : { 
     data : "listValues" 
    } 
}); 
$("#kendoCboClient").kendoComboBox({ 
    placeholder : "Select a Country...", 
    dataTextField : "name", 
    dataValueField: "id", 
    dataSource : clientDS 
}); 

И посмотреть, если отображается ошибка оповещения и дает некоторую информацию.

0

В моем случае у меня было это: Мой тестовый html-файл был из локальной файловой системы, а объект json, который я загружал с URL-адреса сервера. Однажды я изменил URL-адрес для чтения из локальной файловой системы, он решил проблему

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