2012-02-03 3 views
1

LOB 응용 프로그램에 Sencha Ext JS 4를 사용합니다. 서버에서는 JSON 끝점과 함께 MS RIA 서비스 (데이터 도메인 서비스)를 사용합니다. 일반적으로 잘 작동합니다.하지만 페이징은 아닙니다. 예를 들어RIA Services JSON 및 Ext.Js

:

http://localhost/Product/ServiceName.svc/JSON/GetItems?_dc=1328305056811&$take=50&$skip=50 

는 무엇보다도 먼저 우리는 JSON 요청 URL은 내가 다음 구문을 사용할 수 있음을 발견 몇 가지 조사 후 RIA는 단순히 무시 키워드 (상태, 페이지 등)을 가지고 있다는 것을 발견 즉 $ skip ($ skip을 사용한다면 RIA 측에서 질의를 정렬해야한다.) 그리고 $ take, 요청은 적절한 수의 레코드를 리턴한다. 제대로 JS 레코드의 총 수와 나는이 작업을 볼 수있는 유일한 방법을 알 필요가 작동하도록 페이징 위해 - -

{"GetItemsResult":{"TotalCount":-1,"RootResults":[ 

즉 TOTALCOUNT = -1 경우 : 그러나 JSON 응답은 시작 부분에 다음과 같습니다 별도의 요청으로 레코드 수를 쿼리 한 다음 페이지 쿼리를 수행합니다.

질문이 있으십니까? RIA 서비스가 올바른 TotalCount를 반환 할 수 있습니다 ($ skip 또는 $ take-RIA 서비스가 전체 테이블을 보내고 TotalCount를 올바르게 지정하지 않은 경우). inlinecount 옵션에서

답변

1

미안 해요 난 당신이 서버 측에서 사용하는 기술에 대해 잘 모른다. 나는 Grails를 사용하고있어서 더 행복 할 수 없다. 그래서 나는 총 카운트를 많이 도울 수 없다.

그러나 페이징 매개 변수의 경우 ExtJS는 서버 측에서 기대하는 것으로 보내고 받기를 기대할 수있는 변환을 허용합니다. 다른 생각에

proxy:{ 
    type: 'ajax', 
    url: 'request/my.json', 
    //override default param names 
    startParam : "offset", 
    limitParam :"max", 
    sortParam : "sort", 
    simpleSortMode:true,//required for directionParam to be used 
    directionParam : "order", 
    reader: { 
     type: 'json', 
     root: 'data' 
    }, 

:이처럼 당신이 당신의 서버 측이 총 개수를 보낼 수 있도록 매장에 리스너를 생성하고 부하에 수동으로 기록을 계산하고 상점의 TOTALCOUNT 속성으로 설정하지 못할 경우.

행운을 빈다. 드미트리.