| 新增、更新时的字段类型设置综述 |
在新增、更新时最重要的属性就是Edit_FieldFormat了,它实现了大多数类型的输入控件的呈现,并自动生成相关的客户端代码,基本满足在数据录入、更新时所需要的功能。这种方式定义的属性固然有好的一面(可以无限的扩展其类型和参数而无须更改属性的名称),但是属性的可读性比较差,各种类型的参数的表现位置也不定,用户难免会感到一些不适应。
下面这段属性定义了数个字段的类型:
DTable1.Edit_FieldFormat="1||userid|姓名|2|12||^2||password|md5|6|15||^3||htmledit|htmlimg/||||^5||boolean|是|否|||^7||email|||||^8||selectvalue|@@1000.0000@@1500.0000@@3000.0000@@5000.0000@@8000.0000||||^10||urlfile|default_fd|true|default_fd/mini/|上传|^11||defaultvalue|" + Page.Request.UserHostAddress + "|true|||^12||defaultvalue|0|true|||^13||dbselectvalue|select id,姓名 from 个人资料 order by id desc|select id,姓名 from 个人资料 where 姓名 like '%@@%' order by id desc|||^14||checkboxlist|select 技术,技术,类别 from 技术 order by 类别||||";
这样的属性很难让人理解,也根本无法写注释,如果换一种方式表现就能有所改观:
DTable1.Edit_FieldFormat="1||userid|姓名|2|12||"; //定义1列为用户名类型
DTable1.Edit_FieldFormat+="^2||password|md5|6|15||"; //定义2列为密码类型
DTable1.Edit_FieldFormat+="^3||htmledit|htmlimg/||||"; //定义3列使用超文本编辑器
DTable1.Edit_FieldFormat+="^5||boolean|是|否|||"; //定义5列使用布尔类型替换
DTable1.Edit_FieldFormat+="^7||email|||||"; //定义6列为email类型(将自动生成客户端验证)
DTable1.Edit_FieldFormat+="^8||selectvalue|@@1000.0000@@1500.0000@@3000.0000@@5000.0000@@8000.0000||||"; //定义8列为简单的下拉菜单
DTable1.Edit_FieldFormat+="^10||urlfile|default_fd|true|default_fd/mini/|上传|"; //定义10列为文件上传类型,并可以生成缩略图
DTable1.Edit_FieldFormat+="^11||defaultvalue|" + Page.Request.UserHostAddress + "|true|||"; //定义11列带有默认值,值为用户的ip地址
DTable1.Edit_FieldFormat+="^12||defaultvalue|0|true|||"; //定义12列也带有默认值,并且为只读
DTable1.Edit_FieldFormat+="^13||dbselectvalue|select id,姓名 from 个人资料 order by id desc|select id,姓名 from 个人资料 where 姓名 like '%@@%' order by id desc|||"; //定义13列为通过表查询生成的下拉菜单,同时还定义了数据筛选
DTable1.Edit_FieldFormat+="^14||checkboxlist|select 技术,技术,类别 from 技术 order by 类别||||"; //定义14列通过表查询记录生成复选框集,存入的是文本
有关该属性设置的一些其它应用技巧:
| 列序 | 列样式 | 类型 | 选项1 | 选项2 | 选项3 | 描述 | 控件样式 |
| defaultvalue | 默认的值 | 是否只读 | |||||
| 设置新增时字段的默认值,参数2的可选项为{true,false} | |||||||
| ReadOnly | |||||||
| 在更新时设置另一个字段为只读 | |||||||
| checkboxlist | checkkbox数据源的sql语句 | ||||||
| 本类型是将一个数据表查询的记录的结果用复选框的形式表现在AE的界面。如:select id,爱好 from table.如果第一个字段是id,那么记录到数据库的值将是id的数组形式;如果第一个字段是爱好[nvarchar],那么记录到数据库的值将是文本。 | |||||||
| boolean | true值 | false值 | |||||
| autovalue | 赋值 | ||||||
| forceexist | |||||||
| 强制必填字段 | |||||||
| selectvalue | 值1@@值2@@值3 | 只读和隐藏(更新时有效){hidden,readonly} | |||||
| 在AE时,为某个字段设置一个下拉菜单,下拉菜单的数据来自一个简单的设置,之间的项用@@间隔 | |||||||
| dbselectvalue | 下拉菜单来源的数据查询 | 将要进行搜索的语句,如: select id,名称 from table where 名称 like '%@@%' order by id desc |
只读和隐藏(更新时有效){hidden,readonly} | ||||
| 在AE时,为某个字段设置一个下拉菜单,下拉菜单的数据来自一个数据查询返回的结果,如:select id,爱好 from table.如果第一个字段是id,那么记录到数据库的值将是id的数组形式;如果第一个字段是爱好[nvarchar],那么记录到数据库的值将是文本。 | |||||||
| urlfile | 上传文件保存的路径 | 缩略图保存的路径 | |||||
| 设置本字段为上传文件的字段。如果设置了缩略图保存的路径,Dtable将为上传的图片生成缩略图。缩略图的大小默认为100*100并保持比例。 | |||||||
| relatingmenu | 父查询@@子查询 | ||||||
| 设置一个关联菜单,您可以选择大项,然后会列出该大项下的所有子项供您在AE时选择。如:select 球队名称 from 球队@@select 球员,所属球队 from 球员名单。在添加/更新时,将显示两个列表菜单。选择第一个列表菜单(大类),则第二个列表菜单则显示大类下所有的子类列表。如例子所示,选择球队菜单时,将列出该球队所有的球员名单。本属性暂时不适于用ID来关联的表,只能用于文本关联。 | |||||||
| treemenu | 表名@@id列名@显示的字段名@@父字段名 | 一级分类的样式@@二级分类的样式@@三级分类的样式@@N级分类的样式 | |||||
| userid | 用户名字段的真实列名 | 最小字数 | 最多字数 | ||||
| 设置为userid类型字段后,添加记录时将要检测数据表中是否存在该记录。当然,这个类型也可以用于其它场合,例如:不允许有重复记录的字段就可以设置为userid类型。最小字数和最多字数是为了生成客户端验证而设置的,默认最小字数为5,最多字数为20 | |||||||
| unique | 唯一性字段的真实列名 | 类型{datetime,string,number,boolean} | 是否显示唯一性检验按钮{true,false} | ||||
| 设置唯一性字段. 字段的真实列名何字段的类型必须指定(所有的数字类型都用number表示). | |||||||
| password | md5 | 最小字数 | 最多字数 | ||||
| 设置密码字段后,dtable将自动生成密码确认输入控件以及客户端、服务器端验证。如果参数4(选项1)为空,则记录到数据库的时候不对录入的内容加密,否则就进行您所指定的加密方式(注意:使用md5加密,字段需要32字节长度)。 | |||||||
| htmledit | 上传图片将要保存的相对路径 | ||||||
| 设置本字段提供html编辑器,请一定要设置“上传图片将要保存的路径”,这个路径将用于保存编辑器上传的本地图片。 | |||||||
| html | |||||||
| 指定了本类型,则dtable在记录到数据库的时候不对数据进行html编码 | |||||||
| 本类型表明字段将录入的是一个email地址,dtable将自动生成客户端验证程序。 | |||||||
| datetime | 最小时间(暂未实现) | 最大时间(暂未实现) | |||||
| int | 最小数(暂未实现) | 最大数(暂未实现) | |||||
| decimal | 最小数(暂未实现) | 最大数(暂未实现) | |||||