我有這樣一個XML結構DROPDOWNLIST:軟硬度:添加項目使用的ItemRenderer
<Main>
<Category1>
<Data Name="Data1">
<Item>
<Name>foo</Name>
<Info>bar</Info>
</Item>
<Item>
<Name>baz</Name>
<Info>FOO</Info>
</Item>
</Data>
<Data Name="Data2">
</Data>
</Category1>
<Category2>
</Category2>
</Main>
我使用自定義的DropDownList使用ItemRendererFunction來填充它:
<s:Label text="{data.attribute('Name')}" top="3" left="10" right="10" bottom="3" color="0xFF00FF" />
它是否有一個屬性'名稱',否則是一個常規標籤。
渲染功能是:
public function renderNode(item:*):IFactory
{
if (item.attribute('Name') != null)
return new ClassFactory(SpecialItemRenderer);
else
return new ClassFactory(RegularItemRenderer);
}
然而,我指定在數據提供程序的形式的XML,作爲dProv.child(「組別」),因此,我只得到在renderNode()
2個<Data>
節點。但我也想同時填充<Item>
節點。
我已經使用使用新itemRendererFunction newFunc(item:*):void
循環嘗試:
var nodes:XMLNode = item.children();
while(nodes)
{
this.renderNode(nodes);
nodes = nodes.nextSibling;
}
,但有一個運行時錯誤的newFunc()
不會返回任何東西。
然後,我通過創建一個mx:Label
項目動態&通過this.addElement(newLabel)
將它添加到this
修改了原來的renderNode()
但這不會放在下拉列表的標籤,但在控制上。
所以我想知道是否有任何方法可以在解析原始XML數據時動態添加這些Items/label?
問候,
Nisheeth Barthwal
什麼是您的項目渲染器擴展? – 2011-03-17 18:26:10
自定義DropDownList。 – nbaztec 2011-03-17 18:33:17
編輯:我正在使用itemRendererFunction放置基於數據的標籤。標籤的ItemRenderer在聲明中定義。 – nbaztec 2011-03-17 18:49:06