Flex从DataSet填充树控件

时间:2009-08-19 14:49:34

标签: .net flex dataset tree

我目前正在使用Tree控件,并且是我第一次深入研究这个,我需要您的意见和建议。

我的树控件正在从.NET Web服务检索数据。我的.NET webservice返回一个字符串,该字符串通过命令DataSet.GetXML方法从数据集中解析。

Function MyFunc() as String
  'Populate the dataset here
  '.......
  Return DataSet.GetXML()
End Function

在我的flex应用程序中,我将webservice返回的字符串值转换为XML:

private var _xmlMyData:XML;

private function myResultHandler(event:ResultEvent) :void
{
  _xmlMyData = XML(event.result);
  // This script to view the XML data in Text Area
  var strData:String = String(event.result);
  taData.text = strData;
}

然后我将传递给我的xmlListCollection控件

<mx:XMLListCollection id="xmllc_myData" source="{_xmlMyData.Table}" />
<mx:TextArea id="taData" width="300" height="100" />

然后绑定到我的树控件:

<mx:Tree id="treeOffshore" dataProvider="{xmllc_myData}" labelField="DESCN" showRoot="false">
</mx:Tree>

在文本区域控件中查看数据时,我有以下内容:

<NewDataSet>
  <Table>
    <CODE>A1</CODE>
    <DESC>Area One</DESC>
  </Table>

  <Table>    
    <CODE>B2</CODE>
    <DESC>Base Two</DESC>
  </Table>

  <Table>
    <CODE>C4</CODE>
    <DESC>Class Four</DESC>
  </Table>

  <Table>
    <CODE>D8</CODE>
    <DESC>Demo Eight</DESC>
  </Table>
</NewDataSet>

这是树视图呈现的方式:

Area One
  A1
  Area One
Base Two
  B2
  Base Two
Class Four
  C4
  Class Four
Demo Eight
  D8
  Demo Eight

我想要的是只能在第一级定义描述:

Area One
Base Two
Class Four
Demo Eight

我需要做的下一件事是实际上应该根据第一级的CODE来填充树视图的第二级。

例如:

Area One
  Sub Item Area One
  Sub Item Area Two
Base Two
  Sub Item Base Two
  Sub Item Base Three
  Sub Item Base Four
Class Four
  Sub Item Class Four
Demo Eight
  Sub Item Demo Eight
  Sub Item Demo Nine
  Sub Item Demo Ten
  Sub Item Demo Eleven

我对这个树控制事物(以及flex)都很陌生,并且对概念的掌握有限,无法实现这一目标。

我正在考虑修改我最初检索的XML数据,并且可能会为每个节点插入子项,尽管我对如何实现相同的内容进行了绑定。

另一方面,为了给你们一些进一步的细节,树视图数据实际上来自三个表,其中表1是基表,表2包含表1的子表,表3包含子表表3中的数据。

我真诚地感谢您对此的投入。我正在进入Flex的世界,这是在我们的组织中采用这种技术的一个成败的场景。

感谢并希望就如何做到这一点获得一些好的建议。

此致

0 个答案:

没有答案