2012-07-18 1 views
1

코드에 문제가있어 벽에 부딪혔을 때 도움이되기를 바랍니다.ExtJS 4.1.1 : TreeGrid/TreeStore를 사용하여 작업하기

나는 다음과 같은 속성을 가진 트리 그리드의 필드가 있습니다

xtype : 'gridcolumn', 
    id : 'raGridFormulaLink_Purchased', 
    dataIndex: 'formulaLink', 
    groupable : false, 
    editor : { 
     xtype: 'textfield' 
    },  
    renderer: function(value, metaData, record, rowIndex, colIndex, store) { 
     var rVal; var linkRec; 
     if(value !== '' && value !== 0) { 
      /* TODO Find linked Record based on ['child_id' => value] 
      * and print that record's [text] to rVal */ 
      rVal = Ext.local.langstore[448] + ' ' + value; 
     } 
     return rVal; 
    }, 
    align: 'left', 
    width: 100 

당신은 내가 링크 된 기록을 찾기 위해 간단한 HLOOKUP을하려고 볼 수 있듯이. 그러나 나는 가게에서 적절한 기록을 얻을 수 없다. 어떻게해야합니까?

값의 오른쪽에 "child_id"가 있으므로 잘못된 입력이 아닙니다.

감사 어떤 도움,

GR.

+0

그것은 당신이 ExtJS에 모델이 어떻게 작동하는지에 대한 더 많은 연구를 할 필요가 나에게 보인다. 이 코드는 내가 당신이 여기서 구체적으로 무엇을하려고하는지조차 알지 못한다는 점에서 나에게 의미가 없습니다. 나는 HLOOKUP이 엑셀 함수라고 생각하며 Extjs에서 상점이 어떻게 작동하는지 더 잘 이해할 수는 있지만 실제로는 Extjs라는 단순한 함수를 가지고 있지 않습니다. – Reimius

+0

HLOOKUP은 Excel 기능입니다. 나는 내가 그것을 얻기 위해 노력하고있는 것을 더 잘 설명하기 위해 그것을 단순히 사용하고 있었다. Saki (Sencha 지원 포럼)는 [this] (http://docs.sencha.com/ext-js/4-1/#!/api/Ext.data.NodeInterface-method-findChild) 기능을 사용하도록 제안했습니다. – rnngau

답변

2

해결되었습니다.

최종 코드 :

renderer: function(value, metaData, record, rowIndex, colIndex, store) { 
     var rVal; var rText = ''; var node; 

     if(value !== '' && value !== 0) { 
      if(record.isLeaf()) { 
       var node = record.parentNode.findChild('child_id',value); 
       rText = node.data.text; 
       rVal = Ext.local.langstore[448] + ' ' + rText; 
      } 
     } 
     return rVal; 
    },