2012-07-18 55 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是一个excel函数,实际上并没有一个简单的等价函数Extjs,尽管您可以通过更好地了解商店在Extjs中的工作方式来完成某些工作。 – Reimius 2012-07-19 20:04:20

+0

HLOOKUP是一个Excel函数,是的。我只是简单地用它来更好地解释我正在努力实现的目标。 Saki(Sencha支持论坛)建议使用[this](http://docs.sencha.com/ext-js/4-1/#!/api/Ext.data.NodeInterface-method-findChild)功能。 – rnngau 2012-07-20 11:39:37

回答

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; 
    }, 
相关问题