介绍一个免费的具备数据显示/录入/更新/删除功能的asp.net控件
我不能说它比datagrid更强, 因为datagrid有很多深层次的东西可以发掘,但是我能说它比datagrid更易用,更实用,因为它已经轻松实现如下功能,同时,它是完全免费的,不需要注册,没有任何的功能限制。
1、 通过属性设置数据表的显示
2、 客户端数据排序
3、 各种字段类型的格式化显示
4、 所有数据表轻松实现内置的数据添加、更新、删除功能
5、 提供密码字段的支持并使用32位MD5编码
6、 添加、更新图象字段、链接文件字段时自动上传文件
7、 上传图片时可以自动生成缩略图
8、 添加、更新时自动生成了客户端数据验证(空字符验证、最大字符数验证、数字格式验证、日期格式验证、电子邮件验证)
9、 自动对日期/时间字段使用日期选择器(javascript) ,自动对数值字段实用数字选择器
10、 内置图象字段生成程序,直接显示图象字段
11、 内置可以自定义的详细察看页面
12、 已经对输入的参数进行了过滤,防止sqlserver的注入攻击
13、 防止非本页提交
14、 自动分页技术,减少查询数据返回量
15、 提供内置的字段值合计功能
16、 数据表直接导出EXCEL格式
17、 添加记录时可以指定某列使用HTML编辑器
18、 直接对SQLSERVER操作
19、 支持存储过程
20、 双层表头显示
21、 子表显示
22、 内置查询功能
23、 为每一个列生成点击事件
24、 鼠标右键功能
25、 内置21种实用样式
26、 行首直接可以生成Checkbox 或Radio
27、 数据表的多种显示模式(数据表、缩略图、报表)
更多的功能不能尽述。下面是该控件的简单应用说明:
一、第一次使用
1. 把DTABLE.DLL文件拷贝到项目的bin目录下
2. 如同其他第三方控件一样,在自定义工具箱中加入该控件
3. 把该控件拖动到页面合适的位置
4. 重新生成一下项目,即可发现您现在已经可以访问northwind数据库的雇员数据表了
5. 如果您开发的机器上aspnet用户有权限访问northwind数据库,那么您的页面就默认显示雇员的数据表,否则就会提示您没有权限访问该数据库。
二、立即显示你所需要的数据表
1、DTABLE控制数据表的显示是依靠属性来设置的。通常情况下,它的属性都具有一些默认值。如果您觉得它显示的结果不是您所需要的,那么请更改相关的属性来获得您所需要的结果。
2、 首先,你必须要指定3个属性,这样才可以立即显示您的数据表。
a) 数据库连接字符串属性DataConnectString 。
使用时设置如:
DTable1.DataConnectString=” data source=localhost;integrated security=sspi;initial catalog=mydatabase”;
当然,您也可以预先把链接字串封装为其他形式或者是一个全局的变量。如:
DTable1. DataConnectString=Include.datastr;
b) 数据表的名称TableName 。
使用时设置如:
DTable1.TableName="user_tb";
c) 数据列表的查询语句List_SqlText
使用时设置如:
DTable1.List_SqlText ="select * from user_tb";
3、 OK,如果您在Page_load事件中定义了上述3个属性,那么您重新生成后即可立即得到您所定义的数据表列表了,而且DTABLE自动给您定义了表的交错行样式、TITLE样式以及分页栏、行首序号等。
4、 您现在双击第一列链接,就可以立即查看该行的所以字段信息。当然,这是DTABLE默认允许详细查看的结果,您也可以关闭,或者自己定义在详细查看时需要显示的字段乃至字段的名称……乃至字段的类型转换等等。
三、立即拥有记录更新、添加、删除的功能而不需要编写其它代码。您所需要做的就是设置3个属性而已。
1. 允许内置的更新功能:AE_EnableEdit
设置:DTable1. AE_EnableEdit=true;
a) 如何使用内置更新功能?
当允许了内置更新功能以后,数据列表自动会出现数据“更新按钮”,您点击该按钮即进入更新列表的状态。
b) 如何更改数据更新按钮的外观?
通过设置属性:AE_EditButton_Htm来定义更新按钮的样式。例如设置该更新按钮为一个图片edit.gif为:
DTable1. AE_EditButton_Htm=”<img src=http://www.host01.com/Get/Net/000200011/images/edit.gif border=0>”
c) 如何定义需要更新的字段?
默认状态,记录更新界面将列出该表的所有字段。可以通过一个属性设置更新界面显示出来的字段:AE_FieldList,如:
DTable1. AE_FieldList=”id,姓名,年龄,性别”
此时,更新界面就仅仅列出姓名、年龄、性别这3个字段提供更改数据。
d) 记录更新界面有什么不同之处?
DTABLE在记录更新界面提供了大量的易用功能来提高数据录入的有效性和录入速度。例如:它自动对日期字段提供日期选择器(单击打开选择器),自动对数值字段提供计算器(双击打开计算器)。而且,DTABLE自动生成客户端的数字、日期、最大字符数、不允许空值的检验。
e) 关于记录更新的安全问题
DTABLE内置了防止跨页提交的功能,即:系统只对本物理页面提交的数据进行更新,从其他任何页面,即使来自本站点的页面所提交的数据禁止更新。同时,DTABLE还提供防重复提交的功能,你不能使用刷新功能来反复提交数据。
f) 如何限制更新的条件?
您可以通过属性设置要更新的数据必须是符合一定规则的数据。详情请查看后面的记录更新与添加的高级应用。
2. 允许内置的删除功能:AE_EnableDelete
设置:DTable1. AE_EnableDelete=true;
a) 如何使用内置删除功能?
当您允许了内置的删除功能后,数据表就会自动添加一列删除按钮。
b) 如何更改删除按钮的样式?
通过设置一个属性来定义删除按钮的外观:AE_DeleteButton_Html 如:
DTable1. AE_DeleteButton_Html=”<img src=http://www.host01.com/Get/Net/000200011/images/delete.gif border=0>”
c) 如何确保删除功能的安全?
同内置的记录更新一样,DTABLE禁止了跨页提交删除命令。同时也提供其他的限制来禁止非法删除。详情请看记录更新、添加、删除的高级应用篇。
3. 允许记录添加:AE_EnableAddNew
设置:DTable1. AE_EnableAddNew=true;
a) 如何进入记录添加状态?
通过访问当前页面+参数的方式来访问记录添加界面。当然,前提是:您已经允许记录添加功能。如:
?addnew=true
上述这个链接后面附带的参数:?addnew=true即可进入记录添加界面。如果您没有允许记录添加功能,则不会进入记录添加界面,而是直接进入数据列表显示界面。
b) 如何定义记录添加的字段?
如同定义记录更时的字段一样:AE_FieldList,如:
DTable1. AE_FieldList=”id,姓名,年龄,性别”
记录添加与更新都使用同一个属性来定义需要显示的字段。
c) 如何定义确保添加记录的安全?
同记录更新。
d) DTABLE的记录添加有何不同之处?
同记录更新。
四、自己定义数据表显示1、定义不同类型数据的显示
a) 布尔字段
布尔字段在SQLSERVER中为bit类型,允许的值为1和0。如果我们的数据表要显示布尔字段,那么系统默认可能会显示true和false。DTABLE提供了一个属性来定义这种布尔值的转换:List_FormatBoolReplace_No 例如:我们要把一个查询select id,姓名,年龄,性别,目前薪金,近照,毕业证书图片 from user_tb所返回的记录中的布尔字段“性别”替换为“男”和“女”,可以设置该属性DTable1. List_FormatBoolReplace_No=”3|男|女”即可。
当然,也可以在查询语句中直接设置了替换。
b) 保存了图片路径的字段
通过设置一个属性告诉DTABLE,某一个字段属于保存了图片路径的字段,DTABLE就会自动使用该路径到一个图片标签中去。如:DTable1.List_UrlImage_No=”|6|”;
当然,如果有多个这样的字段,直接设置即可:DTable1. List_UrlImage_No=”|6|7|”;
请留意:这里的数字序号指的是数据列表显示出来的列序号,而查询语句的第一列不被显示(作为唯一标识使用)。
c) 货币字段
通过2个简单的属性设置货币字段的显示:
List_FormatCur_No定义了需要作为货币格式显示的字段序列,同样允许多个货币字段的显示,设置如:DTable. List_FormatCur_No=”|4|6|7”; 即:第4、6、7字段都是货币字段,按货币格式显示。
另外一个属性定义了货币显示的前缀:List_FormatCur_str ,人民币设置为:DTable1. List_FormatCur_str=”¥”;美元应该如何设置就不用我重复了吧?
d) 内置的二进制图像字段
DTABLE允许直接显示内置的二进制图像字段。但它并不是自动就开始显示了,您需要进行如下操作才能正常显示:
1。定义二进制图像字段的列名:Test_ImgFieldName 即:DTable1. Test_ImgFieldName=”毕业证书图片”;
2。定义用于查看二进制图像字段的文件名。这个文件名是系统即将自动生成的一个文件。如果您的当前目录只有一个页面会用到直接查看二进制图像字段,则可以不用定义此属性。因为它有一个默认的定义。这个属性是Test_ShowImg_FileName,你可以自己定义一个文件名:DTable1. Test_ShowImg_FileName=”showimg.aspx”;
3。生成该文件。通过访问:当前页的路径+参数即可立即生成该页面。如:访问
?MakeShowImgFile=True即可生成showimg.aspx这个文件。
如果您定义的列名是中文,您可能还需要用编辑器打开showimg.aspx,把里面不正确的列名更正一下。
4。上述3个步骤通常仅需要进行一次即可。您最后定义一个属性告诉DTABLE哪一些字段是二进制图像字段:List_Image_No 如:
DTable1. List_Image_No=”|5|9|12|”; 即:第5、9、12列都是二进制图像字段。届时,数据表自动使用这样的标签来实现:<img src=showimg.aspx?id=xxx>
下面是该控件在数据录入、更新、删除中应用的简单说明:
一、进入数据添加、更新状态
1、进入数据添加界面
通过访问当前页面+参数的方式来进入数据添加状态。例如当前页面名称为:showdtable.aspx,那么进入添加界面的路径应该是?addnew=true
您可以通过超链接、图片链接、按钮动作来进入该页面。
当然,前提是你必须允许数据添加:DTable1.AE_EnableAddNew=true;
2、进入数据更新界面
进入数据更新界面有多种方式。
1)通过内置的更新按钮进入更新界面
要开启内置的更新按钮,必须要设置一个属性:DTable1. AE_EnableEdit=true;
该属性定义了:允许内置的记录更新功能。此时显示数据表会自动添加记录更新的链接,通过点击该链接进入记录更新界面。
相关属性:
2)通过外部自定义链接进入记录更新界面。你需要先设置一个属性: AE_showED_button 该属性定义在允许内置的更新功能时,是否自动显示进入更新界面的链接按钮。默认为显示。
当您决定通过自己定义来实现进入更新界面时,可以定义该属性为false。需要注意的是:如果从外部进入更新界面,必须要给出链接参数:furl=xxxxx。如:
?MeditID=28&Furl=/test/test.aspx?PageNo=1
meditid和furl参数是必须的。Meditid定义了记录的ID,furl定义了进入更新界面的源页面路径。您可以通过Page.Request.CurrentExecutionFilePath来获取当前的路径。
二、定制记录添加界面
1、定义需要在添加记录时的字段
默认状态,DTABLE会把数据表的所有字段作为添加时所需的字段。它提供了一个属性来定义你真正需要的字段,并通过对字段重定义列名来隐藏数据表的真实细节。
DTable1. AE_FieldList=”id,yourname as 姓名,yousex as 性别,yourage as 年龄”;
通过这样的设置,数据表就会显示姓名、性别、年龄3个字段提供录入。ID作为标识字段,一定要放在第一位,否则将会出错。
2、了解DTABLE在记录添加界面都提供了哪些特性。
1)DTABLE对string字段将自动使用最大字符数限制、空字符检验
2)DTABLE对布尔字段自动使用单选按钮。如果该布尔字段允许空值,则默认显示为均未选取状态。
3)DTABLE对日期、时间字段自动使用日期选择器,禁止了键盘录入。虽然DTABLE不允许通过键盘输入日期字符,但是在提交时仍然会检测该字段的日期是否合法。
4)DTABLE对数值、money字段自动使用计算器录入,通过双击文本控件打开计算器,同时允许键盘录入。提交时将检验输入的字符是否为合法的数字。需要注意的是:客户端数值验证只允许2位小数的数值,大于2位小数的数值被认为非法。
5)DTABLE为记录链接图片地址和链接图片文件的字段提供文件立即上传功能,并能够将文件名、文件路径保存到相关的字段;甚至还可以生成缩略图;不限制改类字段的数量。
例如:员工表的第5列记录了员工的学历证明图片,第6列记录了员工提供的培训证书图片,我们则可以通过定义属性:Dtable.AE_Upfiles_No=”|5|6|”;
这个属性告诉DTABLE,第5、6列为文件上传列。在进入记录添加界面时,第5、6列位置自动显示文件控件,并能在提交时自动上传图片。
相关属性:
AE_Upfile_AutoReName:上传的文件是否自动重新命名。默认为true,即:允许自动重命名
AE_UpFilesFd:定义上传的文件需要保存的路径,请指定一个相对路径。例如:./images或../images/abcde
需要确认的是:你的站点必须要存在该文件夹。
AE_Miniature_Fd:定义缩略图存放的路径。如果定义了该属性,DTABLE就认为你所有的Dtable.AE_Upfiles_No所定义的文件上传字段都需要生成缩略图!!
AE_Miniature_width:生成缩略图的最大宽度,同时请指定缩略图的最大高度。属性类别为Integer
AE_Miniature_height:生成缩略图的最大高度,同时请指定缩略图的最大宽度。属性类型为Integer
6)DTABLE可以直接上传文件到内置的二进制图像字段,且没有数量限制。