如何在flex中显示分组数据?

发布于 2024-08-16 21:46:26 字数 527 浏览 6 评论 0原文

<图洛克塞特> <图洛斯>xx1<组>xxx <图洛斯>xx2<组>xxx <图洛斯>xx3<组>yyy

我试图在没有 AdvancedDataGrid 的情况下在应用程序上显示类似的内容。

组 xxx

<代码><复选框> id
<代码><复选框> id

组 yyy

; id
<代码><复选框> id
....

<mx:XML id="inputData" >
<Tulokset>
<Tulos>
<id>xx1</id>
<group>xxx</group>
</Tulos>
<Tulos>
<id>xx2</id>
<group>xxx</group>
</Tulos>
<Tulos>
<id>xx3</id>
<group>yyy</group>
</Tulos>
</Tulokset>
</mx:XML>

im trying to show on the app something like this without AdvancedDataGrid.

group xxx

<checkbox> id
<checkbox> id

group yyy

<checkbox> id
<checkbox> id
....

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

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

发布评论

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

评论(1

青芜 2024-08-23 21:46:26

您可以使用嵌套中继器和 e4x 来完成此操作。我不知道 e4x 中获取唯一组名称的方法,但您可以使用 ActionScript 包装函数来实现。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">
    <mx:Script>
        <![CDATA[

            private static function Unique(list:XMLList):XMLList 
            {
                var found:Object = new Object();
                var output:XML = <root />;

                for each(var node:XML in list) 
                {
                    var value:String = node.text().toString();
                    if (!found[value]) 
                    {
                        output.appendChild(node.copy());
                        found[value] = true;                    
                    }
                }
                return output.children();
            }
        ]]>
    </mx:Script>

    <mx:XML id="inputData" >  
        <Tulokset>  
            <Tulos>  
                <id>xx1</id>  
                <group>xxx</group>  
            </Tulos>  
            <Tulos>  
                <id>xx2</id>  
                <group>xxx</group>  
            </Tulos>  
            <Tulos>  
                <id>xx3</id>  
                <group>yyy</group>  
            </Tulos>  
        </Tulokset> 
    </mx:XML>

    <mx:Repeater id="groupRepeater" dataProvider="{Unique(inputData.Tulos.group)}">
        <mx:Label text="{groupRepeater.currentItem}" fontWeight="bold" />
        <mx:Repeater id="tulosRepeater" dataProvider="{inputData.Tulos.(group==groupRepeater.currentItem)}">
            <mx:Label text="{XML(tulosRepeater.currentItem).id}" />
        </mx:Repeater>
    </mx:Repeater>
</mx:Application>

You can do this with a nested repeater and e4x. I don't know of a way in e4x to get the unique group names, but you can do it with an ActionScript wrapper function.

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">
    <mx:Script>
        <![CDATA[

            private static function Unique(list:XMLList):XMLList 
            {
                var found:Object = new Object();
                var output:XML = <root />;

                for each(var node:XML in list) 
                {
                    var value:String = node.text().toString();
                    if (!found[value]) 
                    {
                        output.appendChild(node.copy());
                        found[value] = true;                    
                    }
                }
                return output.children();
            }
        ]]>
    </mx:Script>

    <mx:XML id="inputData" >  
        <Tulokset>  
            <Tulos>  
                <id>xx1</id>  
                <group>xxx</group>  
            </Tulos>  
            <Tulos>  
                <id>xx2</id>  
                <group>xxx</group>  
            </Tulos>  
            <Tulos>  
                <id>xx3</id>  
                <group>yyy</group>  
            </Tulos>  
        </Tulokset> 
    </mx:XML>

    <mx:Repeater id="groupRepeater" dataProvider="{Unique(inputData.Tulos.group)}">
        <mx:Label text="{groupRepeater.currentItem}" fontWeight="bold" />
        <mx:Repeater id="tulosRepeater" dataProvider="{inputData.Tulos.(group==groupRepeater.currentItem)}">
            <mx:Label text="{XML(tulosRepeater.currentItem).id}" />
        </mx:Repeater>
    </mx:Repeater>
</mx:Application>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文