Flex + XML + dataProvider: проблема с указанием dataProvider для ComboBox и DataGrid - PullRequest
0 голосов
/ 17 марта 2011

Я получаю XML-ответ от PHP-скрипта, доступ к которому осуществляется с помощью свойства [lastResult].
Проблема заключается в следующем:
Структура XML:

<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>

Теперь я указываю dataProviderдля DataGrid как

'lastResult.Category1.Data.(@Name == "Data1").Item'

Это работает достаточно хорошо, и мои данные выводятся правильно.Единственное, что мне нужно, это то, как я могу получить доступ к свойству @Name тега <Data>.
Я могу вывести имя и информацию об элементах, указав:

'Name'
'Info'

Но я не в курсекак указать атрибут @Name родительского тега <Data>, когда я выбрал Data.Item в качестве dataProvider.

Из того, что я могу из этого сделать, мне нужно подняться на 1 уровень к родительскому узлу, но я не смог найти никаких ссылок, например, как подняться на один уровень при использовании [lastResult] dataProvider (всеиспользовали XMLListCollection :: parent ())
Любая помощь приветствуется.

С уважением,
Нишит Бартвал

1 Ответ

0 голосов
/ 17 марта 2011

lastResult.Category1.Data.(@Name == "Data1").Item дает вам список XMLL предметов, найденных в Data1.Каждый элемент имеет тип XML, и вы можете вызвать функцию parent() get для родительского узла:

//get first item
var item:XML = lastResult.Category1.Data.(@Name == "Data1").Item[0];
trace("Data.@Name: " + item.parent().@Name);

Edit: , чтобы заставить его работать внутри DataGrid, вам нужно использовать свойство labelFunctionколонны.Установите это к этому:

function formatItem(item:Object, column:DataGridColumn):String {
    return (item as XML).parent().@Name;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...