【问题标题】:xml attribute datafield datagridxml 属性数据字段数据网格
【发布时间】:2011-07-16 00:30:53
【问题描述】:

为什么我不能为数据字段绑定 xml 属性? (弹性 4)

<fx:Model id="sampleXML">
        <contacts>
            <contact firstName="Joe" lastName="Smith" emailAddress="joe@smith.com" />
            <contact firstName="Sally" lastName="Lally" emailAddress="sally@lally.com" />
            <contact firstName="Albert" lastName="Rigdon" emailAddress="albert@rigdon.com" />
        </contacts>
    </fx:Model>
<mx:DataGrid dataProvider="{sampleXML.contact}" id="dg">
    <mx:columns>
        <mx:DataGridColumn headerText="First Name" dataField="@firstName"  />
        <mx:DataGridColumn headerText="Last Name" dataField="@lastName" />
        <mx:DataGridColumn headerText="Email Address" dataField="@emailAddress" />
    </mx:columns>
</mx:DataGrid>

【问题讨论】:

    标签: xml apache-flex datagrid datafield


    【解决方案1】:

    如果您想使用相同的 @ 表示法,请尝试将您的 fx:Model 更改为 fx:XML。模型将 XML 反序列化为一个对象,这意味着您的 @notation 不会给出预期的结果。以下示例有效:

    <fx:XML id="sampleXML">
       <contacts>
          <contact firstName="Joe" lastName="Smith" emailAddress="joe@smith.com" />
          <contact firstName="Sally" lastName="Lally" emailAddress="sally@lally.com" />
          <contact firstName="Albert" lastName="Rigdon" emailAddress="albert@rigdon.com"/>
       </contacts>
    </fx:XML>
    
    <mx:DataGrid dataProvider="{sampleXML.contact}" id="dg">
       <mx:columns>
          <mx:DataGridColumn headerText="First Name" dataField="@firstName"  />
          <mx:DataGridColumn headerText="Last Name" dataField="@lastName" />
          <mx:DataGridColumn headerText="Email Address" dataField="@emailAddress" />
       </mx:columns>
    </mx:DataGrid>
    

    如果您想使用 fx:Model,请将“@”从您的数据字段名称前面删除

    【讨论】:

      【解决方案2】:

      您也可以尝试使用如下所示的 XMLListCollection,并将“contactsList”作为数据提供者提供给数据网格。

      <mx:XML id="tempXML"
              source="assets/contacts.xml" />
      
      <mx:XMLListCollection id="contactsList"
              source="{tempXML.contacts}" />
      

      假设:xml存储在assets文件夹中,xml名称为contacts.xml

      【讨论】:

        【解决方案3】:

        您将 dataProvider 设置为 {sampleXML.contact}

        应该是{sampleXML.contacts}

        【讨论】:

          猜你喜欢
          • 2011-12-11
          • 2023-01-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-03-02
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多