2016-02-07 2 views
1

Я бы очень признателен за руководство. Мой скрипт сделает вызов на моем сервере, возьмет некоторые данные и вернет их как JSON. Затем я вызываю ServiceSucceeded (msg); Я передаю результаты JSON в msg. Теперь в ServiceSucceeded я хочу отображать результаты в сетке kendoui. Это та часть, с которой я не могу работать. Он не дает ошибок в браузере. Этот код может быть ужасным, поэтому, пожалуйста, обучите меня этому, спасибо!Передача json в сетку кендуй

<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
     <title></title> 
     <link rel="stylesheet" href="../../assets/telerik/styles/kendo.common.min.css" /> 
     <link rel="stylesheet" href="../../assets/telerik/styles/kendo.default.min.css" /> 

     <script src="../../assets/telerik/js/jquery.min.js"></script> 
     <script src="../../assets/telerik/js/kendo.all.min.js"></script> 
    </head> 

<body> 
    <div id="grid"> 

    </div> 
    <div> 
     <script> 
      var Type; 
      var Url; 
      var Data; 
      var ContentType; 
      var DataType; 
      var ProcessData; 
      var Username; 
      var Password; 
      var qryVar; 
      var locationName; 


      function GetAllReportDB() { 
       var dataId = "1"; 
       Type = "GET"; 
       qryVar = "userName=Simon" 
       Url = "http://localhost/UserReportMap.svc/GetAllReportDB?" + qryVar; 
       Data = '{"Contains": "Kir","DBName":"Bony","Operator":"BON0D"}'; 
       ContentType = "application/json; charset=utf-8"; 
       DataType = "json"; ProcessData = true; 
       Username = "test"; 
       Password = "test"; 

       CallService(); 

      } 

      function CallService() { 


       $.support.cors = true; 
       $.ajax({ 
        cache: false, 
        type: Type, //GET or POST or PUT or DELETE verb 
        url: Url, // Location of the service 
        data: Data, //Data sent to server 
        contentType: ContentType, // content type sent to server 
        dataType: DataType, //Expected data format from server 
        processdata: ProcessData, //True or False 


        beforeSend: function (xhr2) { 
         xhr2.setRequestHeader("Authorization", "Basic " + window.btoa(Username + ':' + Password)); 
        }, 


        success: function (msg) { 


         ServiceSucceeded(msg); 
         alert("Succeeded"); 
        }, 
        error: function (errMsg) { 
         alert("Fail!"); 
        } 
       }); 
      } 


      function ServiceSucceeded(msg) { 
       var myResults = { "d": [{msg}] }; 
       alert(JSON.stringify(msg)); 
       $(function() { 
        $("#grid").kendoGrid({ 
         dataType: "json", 
         schem: { 
          data: "d" 

         } 
         //columns: [{ title: "First Name" }, 
          //  { title: "Last Name" }] 
        }); 
       }); 
      } 

      $(document).ready(
     function() { 
      GetAllReportDB(); 

     } 
    ); 
     </script> 
    </div> 

</body> 
</html> 

ответ

1

Ну, у вас есть одна опечатка на схеме. Это должно быть схема, а не схема.

В любом случае, рекомендую проверить API docs, там написано, что вам нужно.

И на ваш вопрос:

Вы отсутствующий DataSource в сетке, так что не знают, от того, что сетка данных должна быть оказана.

$("#grid").kendoGrid({ 
    dataSource: { 
    type: "json", 
    data: jsonData, 
    pageSize: 20 
    }, 
    ... 
}); 

Так линия вар myResults = { "d": [{MSG}]}; можно удалить, а данные msg можно назначить в dataSource. Затем вы сможете установить столбцы - here demo

А также подумайте, нужно ли загружать данные json в функцию и присваивать результат переменной. Сетка может загружать данные с сервера без этого - сервер просто должен вернуть данные json, например, в this example

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