2013-12-18 2 views
0

asp.net 웹 API를 하나로, OData 활성화 된 서비스와 제대로 작동하지 않습니다 (2013.3.1119) & 녹아웃 (2.3)검도 UI 그리드 우리는 검도를 사용하는

우리는 경계 원격 하나로, OData 소스와 아주 간단한 그리드를 만들었습니다 ASP.NET 웹 API에

는 코드 다음 고려 :

 $(element).kendoGrid({ 
      dataSource: { 
       type: 'odata', 
       transport: { 
        read: { url: '/odata/VehicleGroups', dataType: 'json' } 
       }, 
     schema: { 
      data: function(response) { 
       return response.value; 
      }, 
      total: function (response) { 
         return response['odata.count']; 
       } 
      }, 
       serverSorting: true, 
       serverPaging: true, 
       serverFiltering: true 
      }, 
      dataBound: function() { 
       // we'are using knockout templates instead of kendo templates, 
       // so after data load & after all row templates are created, we call following code to apply bindings. 
       ko.memoization.unmemoizeDomNodeAndDescendants(element); 
      }, 
      autoBind: true, 
      rowTemplate: function (item) { 
       // some codes are omitted here. 
       // following code will use knockout template. 
       return ko.renderTemplate('rowTemplate', context.createChildContext(item)); 
      }, 
      toolbar: function() { 
       return ko.renderTemplate('toolbar', context); 
      }, 
      pageable: { 
       pageSize: 10 
      }, 
      sortable: true, 
      resizable: true, 
      reorderable: false, 
      columns: [{ field: 'dVehicle_01', title: 'Unit/Vehicle Number' }, 
         { field: 'dVehicle_02', title: 'Vehicle Identification Number' }, 
         { field: 'dVehicle_04', title: 'Vehicle Type' }, 
         { field: '', title: 'Actions' }] 
     }); 

다음 항목을 제대로 작동 :

1 그리드가 생성됩니다.

2- $ inlineCount = allpages 및 take = 10을 사용하는 첫 번째 쿼리가 전송됩니다.

3- 응답이 수신되고 행 템플리트가 생성되어 데이터가 표시됩니다.

4- $ (요소) .data ('kendoGrid'). dataSource.data()는 개체로 채워집니다. 그러나 우리는 문제 다음 한

:.

$ (요소) .DATA ('kendoGrid') pager.dataSource.data()는 그래서 우리의 호출기가 제대로 작동하지 않는 비어 있습니다.

여기 구현에서 잘못된 점은 무엇입니까? 올바른 구성입니까?

kendo Grid DataSource with OData format = json

감사

계 2 :

는 처음에 우리는 당신이 게시물에서 볼 수 있듯이 이제 관리 중 하나로, OData 웹 서비스, 우리의 대응에 문제가 했어시

textStatus: "success" 

jqXhr.statusText: "OK" 

jqXhr.responseJSON: 
    odata.count: "29" 
    odata.metadata: "http://localhost:2452/odata/$metadata#VehicleGroups" 
    value: Array[10] 

jqXhr.getAllResponseHeaders(): 
    "Pragma: no-cache 
    Date: Sat, 21 Dec 2013 07:20:00 GMT 
    Server: Microsoft-IIS/8.0 
    X-AspNet-Version: 4.0.30319 
    X-Powered-By: ASP.NET 
    Content-Type: application/json; charset=utf-8 
    Cache-Control: no-cache 
    DataServiceVersion: 3.0 
    Content-Length: 7192 
    Expires: -1" 

jqXhr.state(): "resolved" 

jqXhr.responseText: 
    "{ 
     "odata.metadata":"http://localhost:2452/odata/$metadata#VehicleGroups","odata.count":"29","value":[ 
     { 
      "YearGroup":[ 

      ],"Id":"fdd6a5e0-6587-11e3-978d-2797cb4c371a","Version":"122","DateOfArchive":"2013-12-15T12:54:49.0503312Z","IsArchived":false,"ISV":true,"CreatedBy":"ae5882fb-b833-46d7-9f58-0505ec2a6f8f","CreatedTime":"2013-12-15T12:54:49.0973461Z","LastModifiedTime":"2013-12-15T12:54:49.0973461Z","LastModifiedBy":"ae5882fb-b833-46d7-9f58-0505ec2a6f8f", ... 

계 3 : 그리드의 요청의 응답에 대해입니다, 내가 다음 정보를 추가 한 요청

다음 WCF Data Service 샘플 Kendo UI 데모 샘플을 사용하도록 구성을 변경했습니다. http://demos.kendoui.com/service/Northwind.svc/Orders 하지만 유감스럽게도 나에게 적합하지 않았습니다.

계 4 :

나는 2012.2.913을 kendo.all.min을 다운 그레이드 한, 나의 프로젝트는 잘 작동되고 지금은 모두 웹 API & 녹아웃으로 (!).

하지만 웹 API &의 대신 녹아웃없이 WCF 데이터 서비스와 함께,

템플릿을 다른 샘플을 만들었습니다, 그리고 검도 (2013.3.1119)의 최신 버전으로 잘 작동하고 (하지만 내 프로젝트의 외부)

녹아웃 또는 웹 API에 문제가 있습니까?

계 5 :

내 프로젝트에 잘 작동 WCF 데이터 서비스의 샘플을 이동했습니다.

그리고 작동하지 않습니다!

어떤 이유로? 호출기는 내 프로젝트에 내 프로젝트의 안팎, 이전 버전과 함께 작동되지만,

버전도 녹아웃 및 WCF없이, 내 프로젝트에서 작동하지 않습니다,하지만 최신 버전은 내 프로젝트의 외부에서 작업

입니다 최신 .

지금 어떻게해야합니까?

계 6 : kendo.dataViz.js 제거와 는 데이터 그리드는 ASP.NET 웹 API 중 하나로, OData, 녹아웃 템플릿 및 페이징과 협력하고있다.

모든 것이 이제는 내 프로젝트에서 제대로 작동합니다.

Rev 7 : jsfiddle에서 아주 간단한 검도 그리드를 만들었습니다. dataViz가 참조되는 동안 호출기가 작동하지 않습니다.

그러나 dataViz 참조를 제거하면 호출기가 정상적으로 작동합니다.

http://jsfiddle.net/ysmoradi/8L9Pn/2/

참고 :

이 그래서 UI를, 크롬에 그 jsfiddle을 확인하고 모든 CSS를 참조되지 않는하시기 바랍니다 것은 아름다운 것이 아니라 모든 CSS를 추가하면 문제가 해결되지 않습니다.

+1

'complete : function (jqXhr, textStatus) {디버거; }'귀하의 transport.read 및 브라우저 디버그 도구에서 두 변수를 검사하고 당신이 무엇을지고 말해 줄래? – Vojtiik

+0

config가 그렇게 안좋아 보이지 않습니다. 데이터 소스에 schema.model을 구현해야하며, 다시 돌아 오는 응답을 확인하기 위해 schema.parse를 추가해야합니다. 나는 당신이 올바른 데이터를 다시 얻지 못하고 있다고 생각한다. – Vojtiik

+0

@Bobby_D_ 감사합니다. Config에 몇 가지 새로운 항목을 수정했습니다. 응답에 대한 추가 정보를 추가했습니다. 다시 확인해 주시겠습니까? –

답변

0

kendo.web & kendo.gauge를 같은 페이지에 넣으면이 오류와 많은 다른 명확하지 않은 오류를 볼 수 있습니다. 이 경우 파일 대신 kendo.all을 사용해야합니다.

2

ASP.NET WebAPI에 대한 odata 구성은 약간 다르며 일부 세부 조정 (예 : 응답 필드 및 데이터 필드)이 필요합니다.

검도 팀은 다음 GutHub public repo에 대한 작업 예제를 공유했습니다. dataSource 구성이있는 색인 페이지는 here입니다. The Conoller는 here입니다.

이 정보가 귀하가 직면 한 문제를 해결하기 바랍니다.

+0

감사합니다. 언급 한 샘플을 확인하고 실수를 수정했지만 나에게 도움이되지 않습니다. 내 구성을 다시 한 번 살펴보고 아이디어를 알려주시겠습니까? –