新增、更新时的字段类型设置综述

 

在新增、更新时最重要的属性就是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          
本类型表明字段将录入的是一个email地址,dtable将自动生成客户端验证程序。
    datetime 最小时间(暂未实现) 最大时间(暂未实现)      
    int 最小数(暂未实现) 最大数(暂未实现)      
    decimal 最小数(暂未实现) 最大数(暂未实现)