2012-05-09 4 views
1

私はいくつかのカスタムコンポーネントを使用してFlexアプリケーションを構築しています。私はanswer hereをテンプレートとして使って、火花データグリッドでsortByColumnにしようとしています。私は、機能に次のように使用しようとすると、Custom Spark DataGridの未定義メソッド "sortByColumns"?

myGrid.sortByColumns(0,true); 

私はエラーを取得する:

1061: Call to a possibly undefined method sortByColumns through a 
reference with static type com.components:MyReportGrid. 

このエラーを削除する方法を誰もが知っていますか? MyReportGridはどういうわけかスパークコンポーネントの正しい場所をマスキングしていますか?また、invalidateCell()などの他の関数を使用しているときに「未定義のメソッド」エラーが発生し、このエラーに関連するかどうかは不明です。

マイデータグリッドは次のようになります。

次のようにMYCOLUMNがクラスである
... 
<components:MyReportGrid id="myGrid" dataProvider="{_myData}"...> 
    <components:columns> 
     <fx:Array> 
      <supportClasses:MyColumn ... /> 
      <supportClasses:MyColumn ... /> 
      <supportClasses:MyColumn ... /> 
      ... 

import spark.components.gridClasses.GridColumn; 
public class MyColumn extends GridColumn 
{ 
    ... 
    public function MyColumn(headerText:String="header" width:Number=100 ...) 
    { 
     this.headerText=headerText; 
     ... 
    } 
} 

と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> 

答えて

5

MyReportGridコンポーネントのmyGrid.sortByColumns(0,true);を呼び出しているため、これは動作しません。

  • があなたの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> 
    
  • は、データグリッドにルートタグを作成します。

    GroupsortByColumns

    だからのいずれかを行うことができ呼ばれる任意の方法を持っていません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> 
    
+0

は 'void'ことが第一溶液中sortByColumnsのための型を返すべきでしょうか?また、 'myGrid.sortByColumns(...);' a typo?最初の解決策では 'sortByColumns(...);'にする必要がありますか? – ggkmath

+0

戻り値の型の例を変更しました。あなたの 'MyReportGrid'を埋め込んだアプリケーションのどこでも' myGrid.sortByColumns(); 'を呼び出す必要があります。この例では、 'MyReportGrid'の呼び出しを' DataGrid'に含まれています。 –

+1

Dennisさん、ありがとうございます。 – ggkmath

1

うーん、与えることをちょっと難しいですビルドスクリプトや階層を含む完全なコンテキストでコードを見ることなく、良い応答を提供します。しかし、私が知る限り、コンパイラにはMyReportGridのオブジェクトの種類についての情報が不足しているようです。その機能を持つものを拡張しているのですか、それとも関数 "sortByColumns"を実装していますか?

あなたは常に 「myGrid [」sortByColumns「](0、真)」

しかし、それは推奨されません行うことができ、「ヒンティングのタイプ」から離れて取得する方法を探している場合;)

あなたの見解では、MyDataGridについて何か書いていましたが、これは私が誤って入力したと気づくまで私をしばらく失ってしまいました。

"com.components:MyReportGrid"クラスが直接または拡張機能を実装していることを明示しなければなりません。

+0

私はMyDataGridのタイプミスを修正し、感謝ダニエル – ggkmath

関連する問題