主要目标:选择第一个数据网格中列出的学校,并在下一个数据网格中显示该学校的所有学生记录/详细信息。但是,由于datagrid是可编辑的,并且要求提到:“在对象周围使用Wrapper类来获取数据,设置相同并保存。确保包装器可绑定以考虑对数据网格文本字段进行的更新。”
mySchool:mySchoolDO
mySchoolDO是以下代码的actionScript类:
公共课mySchoolDO
{
public var schoolName:String;
public var schoolLocation:String;
public var schoolStudents:ArrayCollection;
// Array of myStudentDO instances
}
上面有一个名为schoolStudents的学生数组,它们访问myStudentDO.as类,如下所述。
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&GT;我可以检索studentDO中存在的个人值,即studentID,studentCourses,studentGender,studentPhone。
B个我应该能够在可视化数据网格中更新它们时设置它们。
c取代;最后保存所有数据并提交点击提交。
请帮助代码。我们将非常感激。
感谢。
答案 0 :(得分:0)
看起来你刚开始使用Flex。
建议:阅读文档。这里有很多关于你要做的基本事情的例子,就是有一个可编辑的网格来显示来自服务器的数据。
一些关键概念:
确保使用ArrayCollection作为Grid的dataProvider,而不是Array。 ArrayCollections提供了这个用例你总是想要的变更通知机制。
确保您的DO模型类都是Bindable。看起来你现在只能将Student属性绑定。让学校也可以绑定。
从School学习到StudentCollection的集合,而不是数组。
遵循惯例并在类名中使用初始大写字母。即MyStudentDO,MySchoolDO
告诉DataGrid您要允许项目编辑。
但是,严肃地说,阅读文档。有很多可用的例子。