使用itemEditor改进数据向导生成的Flex应用

利用Flex Builder 3的数据向导可以很快捷地生成一个Flex CRUD应用,然而该应用的所有项目编辑器都是输入文本,如果数据提供程序项目中字段为布尔、日期等其他数据类型,输入文本使用起来就不方便了,得使用相应的项目编辑器或自定义项目编辑器。

点击此处查看该实例的效果,点击此处下载该实例的源码。

在本实例中,对于“性别”列,我们使用CheckBox项目编辑器;对于“生日”列,使用了自定义的DateField项目编辑器;对于“班级”列,则使用了自定义的ComboBox项目编辑器。这样的界面,用户易懂,使用起来很方便。而且,当我们在新增记录时,也使用了这些项目编辑器作为控件,从而有效地重用了组件。

改进前的的应用,不管属性值有没有更新,当焦点从一个项目编辑器移动到另一个项目编辑器,或者从一条记录移动到另一条记录时,都会提交到服务器端处理,这样情况不是我们想要的。因此我们干脆移除了当项目编辑结束时调度的事件处理函数,新增了Update按钮,只有当用户单击该按钮时,才将更新的当前记录提交到服务器端。如下代码片段:

private function updateItem():void
{
    var vo:*  = dataGrid.selectedItem;
    if(vo)
    gateway.Update(vo.StudentID, vo.Name, vo.Gender, vo.Birthday, vo.ClassName);
}

当然,要改进的地方还有很多,比如说新增更新记录时要进行数据验证,留在下次再讲解吧。

更多关于itemEditor的教程:

发表评论