簡體   English   中英

如何從Actionscript中定位MXML中的Flex 3數據網格?

[英]How can I target a Flex 3 datagrid in MXML from Actionscript?

我在mxml文件(flex 3)中定義了一個數據網格:

我正在使用一個外部類連接到一個sqlite數據庫並生成一些結果(這是有效的,我可以跟蹤結果)。

我該如何針對外部類在mxml中生成的datagrid? 我努力了:

Application.application.resultsGrid.dataProvider = results.data;

並獲取“錯誤:訪問未定義屬性的應用程序”。 來自amxmlc編譯器。

我也嘗試過:

[Bindable]
public var resultsGrid:DataGrid;

在類的屬性。

看來我需要包含import mx.core。*; 現在可以了。

我不太明白你的回答。 我不是通過執行以下操作來綁定dataprovider屬性嗎?

Application.application.resultsGrid.dataProvider = result.data;

我來自PHP背景,並且在那種環境下熟悉OOP,所以Flex中的習慣用法對我來說很陌生。

更新:您問題的措辭使我困惑:(

如果需要從數據庫中填充datagrid,則實際上應該在綁定dataProvider屬性。

正如brd664所說,您實際在做什么

Application.application.resultsGrid.dataProvider = result.data; 

實際上是一項任務。 就像為變量賦值一樣

var a : uint = 1;

綁定為您提供了更多的結構,並允許您基於單個屬性更新來填充多個組件。 綁定還有很多其他好處,而這篇文章可能涵蓋了太多。

這是綁定工作原理的簡單示例。 請注意,有一個可綁定的屬性...單擊按鈕時,它將將該屬性設置為textInput中任何值。 然后,此更新將導致綁定觸發並更新已綁定到該屬性的所有內容。 這是flex的最大功能之一(它在Silverlight和WPF中也得到了廣泛使用,可能還有許多我不知道的其他技術)。 無論如何...嘗試一下,看看是否可以從綁定中更新組件。

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

    <mx:Script>
        <![CDATA[

            private var _myData : String

            [Bindable]
            public function get myData() : String
            {
                return _myData;
            }
            public function set myData(value : String) : void
            {
                _myData = value;
            }

            private function clickHandler(event : MouseEvent) : void
            {
                myData = myTextInput.text;
            }
        ]]>
    </mx:Script>
    <mx:VBox>
        <mx:HBox>
            <mx:Label text="{myData}" />
            <mx:Label text="{myData}" />
            <mx:Label text="{myData}" />
        </mx:HBox>
        <mx:TextInput id="myTextInput" text="TYPE HERE" />
        <mx:Button label="CLICK TO BIND" click="clickHandler(event)" />
    </mx:VBox>

</mx:Application>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM