0

主な目標: 最初のデータグリッドにリストされている学校を選択し、その学校のすべての生徒の記録/詳細を次のデータグリッドに表示します。しかし、データグリッドは編集可能であり、要件に次のように言及されています。

私は、データ アクセス オブジェクト、つまり DO のタイプであるオブジェクトを持っています。

mySchool:mySchoolDO.

mySchoolDO は、次のコードの actionScript クラスです。

パブリック クラス mySchoolDO

{
        public var schoolName:String;
        public var schoolLocation:String;
        public var schoolStudents:ArrayCollection; 
        // Array of myStudentDO instances

}

上記には、以下で説明するように myStudentDO.as クラスにアクセスする schoolStudents という生徒の配列コレクションがあります。


myStudent:myStudentDO.

myStudentDO.as は、次のコードの actionScript クラスです。

public class myStudentDO implements IExternalizable 
{
        [Bindable]      public var studentID: String;
        [Bindable]      public var studentCourses: Array
        [Bindable]      public var studentPhone:Number;
        [Bindable]      public var studentGender:Boolean;

            public function readExternal(input:IDataInput):void {
            studentID = SerializationUtils.readNullableString(input);
            studentCourses = SerializationUtils.readNullableString(input);
            studentPhone = SerializationUtils.readStringList(input);
            studentGender = SerializationUtils.readNullableString(input);
}

私のメインの mxml アプリケーションで。私は次のことを行います:

1>すべての学校の配列を取得します。学校オブジェクトをインスタンス化し、学校データを取得します。2> 学校オブジェクトを使用して、すべての生徒のデータにアクセスし、オブジェクトの配列として保存します。


private function availableSchools(schools:Array): void
{
     mySchools=schools;
     loadSchools();
}

private function loadSchools():void
{
   for(var z:int =0; z

学校がクリックされると、その学校を取得してすべての学校の生徒データを表示する ItemClick イベントが発生します。

private function itemClickEvent(event:ListEvent):void
{
    _school = event.currentTarget.selectedItem;
     showSchoolStudents(_school);
    }

private function showSchoolStudents(school:mySchoolDO) 
{
   for(var b:int=0; b<(school.schoolStudents).length;b++) 
    { 
        schoolDatagridProvider.push(school.schoolStudents[b]); 
    }
       dgOfSchool.dataProvider = schoolDatagridProvider; 
       dgOfSchool.invalidateList(); 
}

showSchoolStudents は、学生のすべての詳細をデータグリッドに表示します。しかし、私のデータグリッドは編集可能です。そして、このオブジェクトの周りで WRAPPER CLASS を使用したい

a> studentsDO に存在する個々の値、つまり、studentID、studentCourses、studentGender、studentPhone を取得できます。

b> ビジュアル データグリッドで更新される値を設定できるはずです。

c>最後にすべてのデータを保存し、送信をクリックして送信します。


コードを手伝ってください。高く評価されます。

ありがとう。

4

1 に答える 1

0

Flex を使い始めたばかりのようです。

提案: ドキュメントを読んでください。ここでやろうとしている基本的なことの例はたくさんあります。それは、サーバーからのデータを表示する編集可能なグリッドを作成することです。

いくつかの重要な概念:

配列ではなく、グリッドへの dataProvider として ArrayCollection を使用していることを確認してください。ArrayCollections は、このユース ケースで必ず必要になる変更通知機構を提供します。

DO モデル クラスがすべてバインド可能であることを確認します。現時点では、学生のプロパティのみをバインド可能にしているようです。School もバインド可能にします。

School から Student のコレクションへの参照を、Array ではなく ArrayCollection にします。

慣習に従って、クラス名の最初に大文字を使用します。例: MyStudentDO、MySchoolDO

項目の編集を許可することを DataGrid に伝えます。

しかし、真剣に、ドキュメントを読んでください。利用可能な例がたくさんあります。

于 2009-07-12T16:02:32.483 に答える