2

에 표시되지 않습니다 나는이 JSON 응답을 반환하는 HttpGet과 APIController 있습니다.검도 ASP.NET MVC 그리드 및 WebAPI 데이터 그리드

나는이와이 서버에 연결, 내 로컬 클라이언트를 테스트하고 있습니다 :

<div class="k-content"> 
    <div id="Grid"></div> 
</div> 

<script type="text/javascript"> 
var dataSource = new kendo.data.DataSource({ 
    transport: { 
     read: { 
      url: "http://<remoteserver>/<apicontroller>/<actionMethod>", 
      dataType: "json", 
      data: { customerFilter: "AAAA", topFilter: "10" } 
     } 
    }, 
    schema: { 
     model: { 
      Customer: "Customer", 
      Office: "Office" 
     } 
    } 
}); 

$(document).ready(function() { 
     $("#Grid").kendoGrid({ 
      dataSource: dataSource, 
      height: 400, 
      columns: [ 
       { field: "Customer" }, 
       { field: "Office" } 
      ] 
     }); 
    }); 
</script> 

이 피들러에서 확인, 나는 위의 응답을 얻을. 그러나 그리드는 비어 있습니다. 아래와 같이 데이터 소스에 데이터를 하드 코딩하면 그리드가 채워 지므로 응답이 수신 되더라도 그리드가 파싱하는 방법을 모르는 것처럼 보입니다.

var dataSource = new kendo.data.DataSource({ 
     data: 
      [{"Customer":"AAAA","Office":"Off1"},{"Customer":"AAAA","Office":"Off2"}], 
     schema: { 
      model: { 
       Customer: "Customer", 
       Office: "Office" 
      } 
     } 

누구나 몇 가지 아이디어가있을 수 있습니다.

감사합니다.

답변

0

데이터 소스 구성이 잘못되었습니다. 검도 UI 설명서를 따라 가기 어려울 수 있지만, 당신은 데이터 소스 정의해야하는 방법이다 :

var dataSource = new kendo.data.DataSource({ 
    transport: { 
    read: { 
     url: "http://<remoteserver>/<apicontroller>/<actionMethod>", 
     dataType: "json", 
     data: { customerFilter: "AAAA", topFilter: "10" } 
    } 
    }, 
    schema: { 
    model: { 
     fields: { 
     Customer: {}, 
     Office: {} 
     } 
    } 
    } 
}; 
+0

전체 URL을 언급 할 필요가 없습니다. uri를 지정할 수 있습니다. 예 : var uri = 'api/products'; var에 DS = 새로운 kendo.data.DataSource ({ 전송 : { 읽기 : { URL : URI, dataType와 "JSON" } } – PSR

0

전체 URL을 언급 할 필요. uri를 지정할 수도 있습니다.

예 :

var uri = 'api/products';  
    var ds = new kendo.data.DataSource({ 
     transport: { 
      read: { 
       url:uri, 
       dataType: "json" 
      } 
      } 
    });