2009-02-22 62 views
0

我在MXML文件中定义的数据网格(弯曲3):如何从Actionscript中定位MXML中的Flex 3数据网格?

我使用的是外部类连接到一个SQLite数据库,并产生了一定的效果(这是工作,我可以跟踪结果)。

我该如何定位从外部类生成的mxml中的数据网格?我曾尝试过:

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

并得到'错误:未定义的属性应用程序的访问。'来自amxmlc编译器。

我也试过:

[Bindable] 
public var resultsGrid:DataGrid; 

在类的属性。

回答

0

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

更新:你的问题的措辞混淆我:(

如果您需要填充与您DB数据网格,你真的应该看结合dataProvider属性

1

模样。我需要包括进口mx.core。*;而现在它工作

我真的不明白你的答案我这不是做结合dataProvider属性:

鸭。 plication.application.resultsGrid.dataProvider = result.data; ?

我来自PHP背景,熟悉OOP环境,所以Flex中的成语对我来说很陌生。

+0

这没有约束力,它的任务。有关绑定的信息: http://www.adobe.com/devnet/flex/quickstart/using_data_binding/ – 2009-02-22 07:33:55

相关问题