0

主要目标:选择第一个数据网格中列出的学校,并在下一个数据网格中显示该学校的所有学生记录/详细信息。但是,由于 datagrid 是可编辑的并且要求提到:“在对象周围使用 Wrapper 类来获取数据,设置相同并保存。确保 wrapper 是可绑定的,以考虑对 datagrid 文本字段进行的更新。”

我有一个对象,它是一种数据访问对象,即 DO。

我的学校:我的学校DO。

mySchoolDO 是以下代码的 actionScript 类:

公开课 mySchoolDO

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

}

上面有一个名为 schoolStudents 的学生数组集合,它访问 myStudentDO.as 类,如下所述。


我的学生:我的学生DO。

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。

建议:阅读文档。有很多示例可以说明您在这里尝试做的基本事情,即拥有一个可编辑的 Grid 来显示来自服务器的数据。

一些关键概念:

确保您使用 ArrayCollection 作为 Grid 的 dataProvider,而不是 Array。ArrayCollections 提供了您在此用例中始终需要的更改通知机制。

确保您的 DO 模型类都是可绑定的。看起来您目前只是使 Student 属性可绑定。使 School 也可绑定。

将 School 对学生集合的引用设为 ArrayCollection,而不是 Array。

遵循约定并在类名中使用首字母大写。即 MyStudentDO、MySchoolDO

告诉 DataGrid 您希望允许项目编辑。

但是,说真的,请阅读文档。有很多可用的例子。

于 2009-07-12T16:02:32.483 回答