在 Spark 列表 itemRenderer 中使用 XML 子节点作为标签

发布于 2024-10-13 01:27:49 字数 613 浏览 4 评论 0原文

在 ActionScript 中,我将 XML 缩减为一系列节点,所有节点的形式如下:

<option letter="A">
    <letter>A</letter>
    <response>Thank you</response>
    <posFeed>Excellent</posFeed>
    <negFeed>Terrible</negFeed>
    <score>-1</score>
    <elimOptions>B</elimOptions>
</option>

当我将这一系列设置为使用带有 Spark 标签的自定义项目渲染器的 Spark 列表的 dataProvider 时,我设置了 label.text={ data},它将每个完整的节点集显示为列表项。

如果我不想事先将 XML 缩减为节点(我希望我必须执行的其他功能的完整集保持不变),那么如何将响应节点设置为用于itemRenderer 中的标签?我尝试设置标签 text={data.response},但这不起作用(完整的节点集仍然显示为每个列表项。

In ActionScript, I whittle down my XML to a series of nodes, all formed like this:

<option letter="A">
    <letter>A</letter>
    <response>Thank you</response>
    <posFeed>Excellent</posFeed>
    <negFeed>Terrible</negFeed>
    <score>-1</score>
    <elimOptions>B</elimOptions>
</option>

When I set this series as the dataProvider for my Spark list that uses a custom item renderer with a Spark label, I set the label.text={data}, which displays each full set of nodes as a list item.

If I don't want to whittle the XML down to just the nodes beforehand (I'd like the full set intact for other functions I have to perform), how can I set just the response node to be the data to use for the label in the itemRenderer? I tried setting the label text={data.response}, but that doesn't work (a full set of nodes still appears as each list item.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

清音悠歌 2024-10-20 01:27:49

像这样:

<fx:Declarations>
    <fx:XML id="data">
        <options>
            <option letter="A">
                <letter>A</letter>
                <response>Thank you</response>
                <posFeed>Excellent</posFeed>
                <negFeed>Terrible</negFeed>
                <score>-1</score>
                <elimOptions>B</elimOptions>
            </option>
            <option letter="B">
                <letter>B</letter>
                <response>Thank you B</response>
                <posFeed>Excellent B</posFeed>
                <negFeed>Terrible B</negFeed>
                <score>-1</score>
                <elimOptions>B</elimOptions>
            </option>
        </options>
    </fx:XML>
</fx:Declarations>

<s:List labelField="response">
    <s:dataProvider>
        <s:XMLListCollection source="{data.option}" />
    </s:dataProvider>
</s:List>

我应该补充一点,当我这样做时,使用自定义项目渲染器没有遇到任何问题:

<s:List itemRenderer="DataItemRenderer">
    <s:dataProvider>
        <s:XMLListCollection source="{data.option}" />
    </s:dataProvider>
</s:List>

<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" 
                xmlns:s="library://ns.adobe.com/flex/spark" 
                xmlns:mx="library://ns.adobe.com/flex/mx" 
                autoDrawBackground="true">

    <s:Label text="{data.response}"/>

</s:ItemRenderer>

Like this:

<fx:Declarations>
    <fx:XML id="data">
        <options>
            <option letter="A">
                <letter>A</letter>
                <response>Thank you</response>
                <posFeed>Excellent</posFeed>
                <negFeed>Terrible</negFeed>
                <score>-1</score>
                <elimOptions>B</elimOptions>
            </option>
            <option letter="B">
                <letter>B</letter>
                <response>Thank you B</response>
                <posFeed>Excellent B</posFeed>
                <negFeed>Terrible B</negFeed>
                <score>-1</score>
                <elimOptions>B</elimOptions>
            </option>
        </options>
    </fx:XML>
</fx:Declarations>

<s:List labelField="response">
    <s:dataProvider>
        <s:XMLListCollection source="{data.option}" />
    </s:dataProvider>
</s:List>

I should add that when I did this, I didn't have any trouble using a custom item renderer:

<s:List itemRenderer="DataItemRenderer">
    <s:dataProvider>
        <s:XMLListCollection source="{data.option}" />
    </s:dataProvider>
</s:List>

<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" 
                xmlns:s="library://ns.adobe.com/flex/spark" 
                xmlns:mx="library://ns.adobe.com/flex/mx" 
                autoDrawBackground="true">

    <s:Label text="{data.response}"/>

</s:ItemRenderer>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文