为今后开发动态页面做个备忘。
ObjectDataSource (数据源)
需要绑定业务对象名和数据对象名
- 业务对象实为一个类对象,包含数据表特定操作方法,这些方法大多包含数据对象作为参数传递。
- 数据对象包含一组与数据表字段对应的同名同类型属性,用于在页面与数据库之间传递值。
数据源可以选用4个主要数据表操作方法名(select,update,insert,delete),这些方法包含在业务对象里,同时数据源还可以定义其他事件名,事件方法都在后台文件中。
FormView是一个具有数据提交功能的视图,是对HTML页面中的form标签的封装,主要提供了新建、维护,可以包含edit、insert、item、empty四个模板,页面的不同状态以不同模板呈现FormView的界面,当指定数据源后,FormView与ObjectDataSource建立了关联,使得不同的模板与数据源的相应方法自动绑定。
- EDIT模板用于update时数据维护,包含相关控件,包含保存,取消按钮,通过GridView选定或其他方式指定已存在的记录,切换成EDIT模板后自动执行数据源的SELECT方法,取得数据对象后绑定模板中的控件,显示记录值。当用户修改好数据点击保存后执行数据源的UPDATE方法。
- INSERT模板用于新建记录数据输入,包含相关控件、包含插入、取消按钮,切换后所有控件初始化,等数据输入完成后点击插入按钮,执行数据源的INSERT方法
- ITEM模板用于显示指定记录的数据、一般为空,包含新建按钮,用来切换到INSERT模板,执行SELECT,可以用来显示记录内容
- EMPTY模板用于没有指定记录时的界面,一般为空,包含新建按钮,用来切换到INSERT模板
FORMVIEW中所有具有写数据表的模板都必须包含与数据对象一致的控件并绑定数据对象的相关属性,
如果部分数据不需要呈现,也必须以隐藏控件(HIDDEN)绑定属性,因为.NET的绑定机制必须按数据对象的所有属性全部绑定,否则会出错。
绑定数据时,绑定方式可以用类似宏的函数干预,以达到不同的要求,比如格式化日期显示。
代码举例(控件绑定数据对象属性)
Value='<%# Bind("StartDate")%>' 双向绑定,可以理解为读写
Value='<%# Eval("StartDate")%>' 显示绑定,可以理解为只读
Text='<%# Obj.Format(Eval("StartDate") ) %>' 日期显示绑定后格式化
Text='<%#WAI.GetGroupName(Eval("Deptcode")) 显示绑定后取转换
从例子中可以了解到,前台显示绑定使用后台对象和方法处理。
大部分数据系统中对数据库涉及的操作不外乎记录的插入(新建)、更新(维护)、删除和查询。从功能角度看,除了查询之外,其他操作都是只能作为数据维护,同时只能授权给数据维护人员,而查询
页面一般用于对对一般用户的查询、查看、统计汇总。
GRIDVIEW的绑定机制和FORMVIEW类似。