有没有实时 mxml mx:datagrid 全文搜索示例\教程?

发布于 2024-09-27 23:20:31 字数 137 浏览 3 评论 0原文

因此,我在 RIA 中有一个 mx:DataGrid 连接到某个 Web 服务,并从中获取数据(Dataprovider)。我有一个简单的文本字段。我想对文本字段中的文本进行更改,以便在表中仅查看任何列中任何单词的某些部分中包含输入文本的行。怎么做这样的事情?

So I have in my RIA a mx:DataGrid connected to some web service from which it obtains data (Dataprovider). I have a simple text fild. I want to on text in text field change to see in my table only lines containing inputed text in some part of any word in any column. how to do such thing?

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

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

发布评论

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

评论(1

淡写薰衣草的香 2024-10-04 23:20:31
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:s="library://ns.adobe.com/flex/spark" 
    xmlns:mx="library://ns.adobe.com/flex/mx" 
    initialize="init();">

    <fx:Script>
    <![CDATA[
        import mx.collections.ArrayCollection;

        import spark.events.TextOperationEvent;

        [Bindable]
        private var dataProvider:ArrayCollection;

        private var filterString:String;

        private function init():void
        {
            dataProvider = new ArrayCollection(
                [
                    { name: "Alan", surname: "Cooper" },
                    { name: "James", surname: "Gosling" },
                    { name: "Mike", surname: "Chambers" },
                    { name: "Hare", surname: "Krishna" },
                    { name: "Otto", surname: "Thunder" }
                ]);
            dataProvider.filterFunction = filterFunction;
        }   

        private function filterFunction(item:Object):Boolean
        {
            if (!filterString)
                return true;

            for (var p:String in item)
            {
                var string:String = item[p] as String;
                if (!string)
                    continue;

                if (string.toLocaleLowerCase().indexOf(filterString) >= 0)
                    return true;
            }
            return false;
        }

        private function input_changeHandler(event:TextOperationEvent):void
        {
            filterString = input.text.toLocaleLowerCase();
            dataProvider.refresh();
        }

    ]]>
    </fx:Script>

    <s:layout>
        <s:VerticalLayout horizontalAlign="center" verticalAlign="middle"/>
    </s:layout>

    <s:TextInput id="input" change="input_changeHandler(event)"/>

    <mx:DataGrid dataProvider="{dataProvider}"/>

</s:Application>
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:s="library://ns.adobe.com/flex/spark" 
    xmlns:mx="library://ns.adobe.com/flex/mx" 
    initialize="init();">

    <fx:Script>
    <![CDATA[
        import mx.collections.ArrayCollection;

        import spark.events.TextOperationEvent;

        [Bindable]
        private var dataProvider:ArrayCollection;

        private var filterString:String;

        private function init():void
        {
            dataProvider = new ArrayCollection(
                [
                    { name: "Alan", surname: "Cooper" },
                    { name: "James", surname: "Gosling" },
                    { name: "Mike", surname: "Chambers" },
                    { name: "Hare", surname: "Krishna" },
                    { name: "Otto", surname: "Thunder" }
                ]);
            dataProvider.filterFunction = filterFunction;
        }   

        private function filterFunction(item:Object):Boolean
        {
            if (!filterString)
                return true;

            for (var p:String in item)
            {
                var string:String = item[p] as String;
                if (!string)
                    continue;

                if (string.toLocaleLowerCase().indexOf(filterString) >= 0)
                    return true;
            }
            return false;
        }

        private function input_changeHandler(event:TextOperationEvent):void
        {
            filterString = input.text.toLocaleLowerCase();
            dataProvider.refresh();
        }

    ]]>
    </fx:Script>

    <s:layout>
        <s:VerticalLayout horizontalAlign="center" verticalAlign="middle"/>
    </s:layout>

    <s:TextInput id="input" change="input_changeHandler(event)"/>

    <mx:DataGrid dataProvider="{dataProvider}"/>

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