ggk*_*ath 1 apache-flex actionscript actionscript-3 flex4
我正在使用一些自定义组件构建Flex应用程序,我认为这些组件正在搞乱.我正在尝试sortByColumn在火花数据网格中,使用此处的答案作为模板.当我尝试在函数中使用以下内容时,
myGrid.sortByColumns(0,true);
Run Code Online (Sandbox Code Playgroud)
我收到错误:
1061: Call to a possibly undefined method sortByColumns through a
reference with static type com.components:MyReportGrid.
Run Code Online (Sandbox Code Playgroud)
有谁知道如何删除此错误?被MyReportGrid莫名其妙地掩盖了Spark组件的正确位置?当使用其他一些函数时,我也会得到"未定义的方法"错误,例如invalidateCell(),不确定它是否与此错误有关.
我的数据网格如下:
...
<components:MyReportGrid id="myGrid" dataProvider="{_myData}"...>
<components:columns>
<fx:Array>
<supportClasses:MyColumn ... />
<supportClasses:MyColumn ... />
<supportClasses:MyColumn ... />
...
Run Code Online (Sandbox Code Playgroud)
其中MyColumn是一个类,如下所示:
import spark.components.gridClasses.GridColumn;
public class MyColumn extends GridColumn
{
...
public function MyColumn(headerText:String="header" width:Number=100 ...)
{
this.headerText=headerText;
...
}
}
Run Code Online (Sandbox Code Playgroud)
和MyReportGrid是:
<?xml version="1.0" encoding="utf-8"?>
<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
width="400" height="300">
import com.components.myClasses.MyColumn;
import com.itemRenderers.myItemRenderer;
import mx.collections.ArrayCollection;
import mx.collections.ArrayList;
import mx.collections.ListCollectionView;
import spark.components.gridClasses.GridColumn;
...
<s:DataGrid width="100%" ... />
</s:Group>
Run Code Online (Sandbox Code Playgroud)
因为你在呼唤这行不通myGrid.sortByColumns(0,true);您的MyReportGrid组分,它是基本类型Group.
A Group没有任何方法调用sortByColumns
所以你可以:
在MyReportGrid组件中创建委托方法
<?xml version="1.0" encoding="utf-8"?>
<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
width="400" height="300">
import com.components.myClasses.MyColumn;
import com.itemRenderers.myItemRenderer;
import mx.collections.ArrayCollection;
import mx.collections.ArrayList;
import mx.collections.ListCollectionView;
import spark.components.gridClasses.GridColumn;
...
<mx:Script>
<![CDATA[
public function sortByColumns(columnIndices:Vector.<int>, isInteractive:Boolean = false):Boolean{
return internalGroupGrid.sortByColumns(columnIndices,isInteractive);
}
]]>
</mx:Script>
<s:DataGrid width="100%" id="internalGroupGrid"... />
</s:Group>
Run Code Online (Sandbox Code Playgroud)使DataGrid成为MyReportGrid组件的根标记
<?xml version="1.0" encoding="utf-8"?>
<s:DataGrid xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
width="400" height="300">
import com.components.myClasses.MyColumn;
import com.itemRenderers.myItemRenderer;
import mx.collections.ArrayCollection;
import mx.collections.ArrayList;
import mx.collections.ListCollectionView;
import spark.components.gridClasses.GridColumn;
...
</s:DataGrid>
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
555 次 |
| 最近记录: |