2014-04-10 1 views
0

저는 열의 각 셀에서 열이있는 gridpanel (월 : 12 월까지 12 월)을 가지고 있습니다. 내 모델의 필드에서 변환기로 만들면 간단한 문제를 처리했습니다. 작동하지 않습니다렌더러와 변환기의 차이점 ExtJS

var responses=record.responses(); 
var sum=0; 
var nbResponses=0; 
console.log('counts:'+responses.getCount()); 
for(var i=0;i<responses.getCount();++i){ 
    var response=responses.getAt(i); 
    if(response.get('month')===0){ 
    sum+=response.get('score'); 
    ++nbResponses; 
} 
} 
var nb=Ext.Number.toFixed(sum/nbResponses,1); 
if(isNaN(nb)) 
return ''; 
else return nb; 

은 항상 ''돌아, 나는 responses.getCount() 나는 컨버터를 삭제하고 작동 열 및 반환의 렌더러에이 과정을 만들 경우 지금, 0 것을 보여 주었다 나에게 올바른 값을, 내 문제는 만약 내가 다른 열에는 간단한 행에있는 모든 달의 합계를 계산하고 싶습니다 때문에 나는이 열 (예를 들어 'jan') 다른 열에서 액세스 할 수없는 렌더러에서 보자입니다 그리드 패널은

입니다.
columns: jun|feb|..... |dec |total. 
row1: 3 | 5| 000| 5| 13. 

그래서 아이디어와 고맙습니다. Thanx

+0

귀하의 질문은 하나 개의 큰 문장입니다. 질문을 수정하고 몇 가지 점을 삽입 해 주시면 현재의 형식으로 읽는 것이 정말 어렵습니다. –

+0

고맙습니다. 내 freind에 응답하겠습니다. 아무런 문제없이 제 프로세스를 변경했습니다. – Sayros

답변

2

렌더러는 렌더링되기 전에 데이터 (값, 모양 등)를 변환하는 데 사용할 수있는 '인터셉터'방법입니다. 그리드에 해당 열의 각 셀에 대한 정보를 표시하는 방법을 알려줍니다. 예 :

{ 
    renderer: function(value){ 
     value?'<span style="color:green">TRUE</span>':'<span style="color:RED">FALSE</span>'; 
    } 
} 

변환기는 Reader가 제공 한 값을 모델에 저장할 객체로 변환하는 함수입니다. 이 함수는 데이터 저장소의 "행"정보에 액세스 할 수 있으며 데이터 모델에서 다른 필드의 조합 인 새 필드를 만드는 데 사용할 수 있습니다. 예를 들어 "성"및 "성"필드가있는 경우 convert를 사용하여 "전체 이름"필드를 쉽게 만들 수 있습니다.

데이터 저장소의 전체 길이에 액세스 할 수있는 함수는 없습니다.

도움이되기를 바랍니다.

+0

당신의 응답에 대한 xx freind 이제 차이점을 이해할 수 있지만 내 문제는 그의 모델에서 컨버터블에 juin이라는 필드가 있습니다. 위 코드를 작성하면 문제는 var responses = record.responses()입니다. 그의 변환기에서 비어있는 반면 비어 있지 않습니다, 당신이 내 문제를 이해했기를 바랍니다. – Sayros

관련 문제