ASP
NET的出现
使网络程序员们设计程序的时候完全找到了
设计程序
的感觉
当然
更多的
他们感觉到了ASP
NET的得心应手
但是
没有想偷懒就没有进步
如果你仅仅依靠ASP
NET自己的强大功能而不想其他手段
那你很快就会发现别人设计程序比你会快很多而且轻轻松松
现在
我们来学习几招偷懒的手段
让别人跟在你后面敬佩吧
使用过ASP的朋友一定都记得ASP的很多功能需要一些第三方的组件实现比如文件上传功能的实现就往往使用ASPCNUP组件实现使用这些组件不但可以扩展ASP程序的功能而且大大提高程序开发速度我们这里介绍的偷懒手段也就是介绍几款与我们平时设计密切相关的组件
一超级数据表格SuperDataGrid
ASPNET自带的DatGrid功能强大定制也很方便但是因为它不是专门为数据库应用设计的所以在连接数据库的时候我们不得不首先连接数据库然后绑定数据而SuperDataGrid 是专门为数据库设计的所以那些繁琐的连接数据库我们也就没有必要去写了需要
SuperDataGrid将DataGrid的一些属性简单化使用这个控件我们可以方便的实现数据库数据的显示排序修改数据这些功能的实现只要简单几行代码就可以我们现在来看它的使用
1显示数据表
以下代码演示怎样使用SuperDataGrid来简单的显示数据表中的所有数据
<%@ Register TagPrefix=Super Namespace=SuperexpertData
Assembly=SuperexpertSuperDataGrid %>
<Super:SuperDataGrid
ConnectionString=Server=localhost;UID=demo;pwd=secret;database=pubs
TableName=Titles
Runat=Server />
具体效果请看
http://wwwsuperexpertcontrolscom/superdatagrid/samples/sampleaspx
现在我们来简单分析以上代码第一行使调用SuperDataGrid控件我们在以后的举例中都将使用到第二行和标准的DataGrid使用差不多我们看看SuperDataGrid的一些属性
ConnectionString因为是连接数据库当然少不了数据库连接语句这个参数就是连接数据的语句
TableName要显示具体的表我们就在这里定义
看到这里我们已经感觉到了简单但是在实际的应用中像这种直接显示一个表的情况是很少的所以我们需要其他更多的功能最直接的我们需要Select语句的返回结果
<%@ Register TagPrefix=Super Namespace=SuperexpertData
Assembly=SuperexpertSuperDataGrid %>
<Super:SuperDataGrid
ConnectionString=Server=localhost;UID=sa;pwd=secret;database=Northwind
CommandText=Select ProductName CategoryName
From Products Categories Where ProductsCategoryID=CategoriesCategoryID
Runat=Server />
具体效果请看
http://wwwsuperexpertcontrolscom/superdatagrid/samples/sampleaspx
以上代码返回Select语句的结果在这里我们见到一个新的属性
CommandText和Command一样就是Select语句
2数据排序
在DataGrid中数据排序虽然简单但是代码还是不少我们现在来看SuperDataGrid中怎样给数据排序
<%@ Register TagPrefix=Super Namespace=SuperexpertData
Assembly=SuperexpertSuperDataGrid %>
<form runat=Server>
<Super:SuperDataGrid
ConnectionString=Server=localhost;UID=sa;pwd=secret;database=Pubs
TableName=Titles
EnableSorting=True
Runat=Server />
</form>
具体效果请看
http://wwwsuperexpertcontrolscom/superdatagrid/samples/sampleaspx
仔细看以上代码其实就是设置了一个EnableSortinga属性为真也就是打开排序功能需要仔细注意的一点要将SuperDataGrid包括在Form中
3数据分页
在ASP中很多朋友会为分页烦恼现在我们看看SuperDataGrid中怎样分页
<%@ Register TagPrefix=Super Namespace=SuperexpertData
Assembly=SuperexpertSuperDataGrid %>
<form runat=Server>
<Super:SuperDataGrid
ConnectionString=Server=localhost;UID=sa;pwd=secret;database=pubs
TableName=Titles
EnablePaging=True
PageSize=
PagerStyleMode=NumericPages
Runat=Server />
</form>
具体效果请看
http://wwwsuperexpertcontrolscom/superdatagrid/samples/sampleaspx
我们来看看SuperDataGrid的几个新属性
EnablePaging首先我们当然要打开数据分页
PageSize和DataGrid一样每页数据显示的条数
PagerStyleMode和DataGrid一样页码显示方式
4数据编辑
我们知道在DataGrid中我们可以在直接编辑数据但是一般我们很少使用这样功能因为这样编辑数据不是很方便也不是很实用代码编写也比较多现在SuperDataGrid也提供这个功能当然我们不需要写那么多代码只需要简单的设置就可以其他SuperDataGrid全部帮我们弄好了
<%@ Register TagPrefix=Super Namespace=SuperexpertData
Assembly=SuperexpertSuperDataGrid %>
<form runat=Server>
<Super:SuperDataGrid
ConnectionString=Server=localhost;UID=sa;pwd=secret;database=Northwind
TableName=Products
EnableEditing=True
EnablePaging=True
Runat=Server />
</form>
具体效果请看
http://wwwsuperexpertcontrolscom/superdatagrid/samples/sampleaspx
看以上代码如果需要编辑数据只要加EnableEditing属性就可以了是不是特别简单?当然我们仍然要将SuperDataGrid放在Form中
5缓存
ASPNET的缓存功能我们已经知道很强大但是具体到SuperDataGrid你会发现它更加方便使用SuperDataGrid的时候会自动缓存已经显示过的数据来提高程序效率设置缓存功能可以使用CacheScope属性我们可以设置缓存类型为ApplicationSession和 None
SuperDataGrid默认缓存类型为Application也就是所有用户共用缓存如果采用Session缓存只针对特殊的用户如果设置为None那就是不要缓存功能默认的缓存会保持分钟当然我们可以使用CacheDuration属性设置缓存时间单位为分钟
二超级表单Superexpert DataForm
刚才我们看到SuperDataGrid已经具有数据修改功能但是由于数据浏览和修改同时进行实际上我们很少使用那种方式更多的我们还说采用单个记录修改
以往我们在使用表单修改或者增加数据库数据的时候需要作的工作很多比如设置数据格式等如果数据比较多那更加繁琐现在使用Superexpert DataForm我们可以简单的实现这些功能
Superexpert DataForm可以自动保存或者修改数据库数据还可以使用它自动从数据库生成表单(实际是浏览数据)我们甚至可以自定义样式来自动修改更新数据库表
1从数据库自动生成表单
假设我们使用以下SQL语句生成一个叫CustomerSurveys的数据表
Create Table CustomerSurvey
(
Customer_ID INT NOT NULL IDENTITY Primary Key
Customer Varchar( ) NOT NULL
Age INT NOT NULL
Birthdate DateTime NOT NULL
Comments Text
)
这个数据表有Customer_IDCustomer AgeBirthdate和Comments五个字段我们可以使用Superexpert DataForm自动生成一个表单使用这个表单我们可以直接向该数据表增加数据
<%@ Register TagPrefix=Super Namespace=SuperexpertData
Assembly=SuperexpertDataForm %>
<html>
<head><title>SimpleDataFormaspx</title></head>
<body>
<super:SqlDataForm
TableName=CustomerSurvey
ConnectionString=Server=Localhost;UID=sa;PWD=secret;Database=Pubs
Mode=AddRecord
runat=Server />
</body>
</html>
具体效果如下
http://wwwsuperexpertcontrolscom/dataform/samples/sampleaspx
为了更好的理解Superexpert DataForm我们必须了解那些东西是可以自动生成的
表单中的TextBox宽度是根据数据表数据宽度自动生成的
填入表单中数据的验证是自动生成的如果数据表要求数据不为Null那么提交表单的时候就要求输入如果数据为Int要求填入Integer如果数据为DateTime要求填入DateTime数据
点击提交按钮以后数据自动保存到数据表
所有我们要做的只是提供数据表名称和数据库连接字符串
二)设置DataForm模式
DataForm有以下几种模式
AddRecord增加数据模式
UpdateRecord修改单条数据模式
UpdateTable成批修改数据模式
Custom提交数据时可以自己设置逻辑验证
为了修改一条已经存在的数据我们必须设置DataForm模式为UpdateRecord然后我们必须确定修改那一条数据我们通过DataKeyField和DataKeyValue唯一确定一条数据DataKeyField是数据表主键DataKeyValue是一条数据的主键的值
以下代码修改数据表中第三条记录
<%@ Register TagPrefix=Super Namespace=SuperexpertData
Assembly=SuperexpertDataForm %>
<html>
<head><title>DataFormUpdateRecordaspx</title></head>
<body>
<super:SqlDataForm
TableName=CustomerSurvey
ConnectionString=Server=Localhost;UID=sa;PWD=secret;Database=Pubs
DataKeyField=Customer_ID
DataKeyValue=
Mode=UpdateRecord
runat=Server />
</body>
</html>
具体效果如下
http://wwwsuperexpertcontrolscom/dataform/samples/sampleaspx
以上代码设置Mode为UpdateRecord设置DataKeyField为Customer_ID设置DataKeyValue为
如果我们需要修改数据表中的所有数据可以将DataForm模式设置为UpdateTable在设置为修改整个表以后会在数据表单上方生成一个导航条通过这个导航条我们可以浏览数据表中的所有数据
<%@ Register TagPrefix=Super Namespace=SuperexpertData
Assembly=SuperexpertDataForm %>
<html>
<head><title>DataFormUpdateTableaspx</title></head>
<body>
<super:SqlDataForm
TableName=CustomerSurvey
ConnectionString=Server=Localhost;UID=sa;PWD=secret;Database=Pubs
DataKeyField=Customer_ID
Mode=UpdateTable
runat=Server />
</body>
</html>
具体效果如下
http://wwwsuperexpertcontrolscom/dataform/samples/sampleaspx
如果我们将模式设置为Custom我们就可以设置提交表单以后的动作比如以下代码实现提交表单以后自动转到ThankYouaspx页面
<%@ Register TagPrefix=Super Namespace=SuperexpertData
Assembly=SuperexpertDataForm %>
<Script runat=Server>
Sub Form_Submit( s As Object e As EventArgs )
myFormSave()
ResponseRedirect( ThankYouaspx )
End Sub
</Script>
<html>
<head><title>DataFormCustomaspx</title></head>
<body>
<super:SqlDataForm
id=myForm
TableName=CustomerSurvey
ConnectionString=Server=Localhost;UID=sa;PWD=secret;Database=Pubs
Mode=Custom
OnSubmit=Form_Submit
runat=Server />
</body>
</html>
具体效果如下
http://wwwsuperexpertcontrolscom/dataform/samples/sampleaspx
3设置DataForm样式
DataForm有四种样式我们可以修改
HeaderStyle定义数据表单的Header样式
LabelStyle定义数据表单的Label样式
FieldStyle定义数据表单的Field样式
FooterStyle定义数据表单的Footer样式
DataForm还支持以下属性设置
GridLines定义数据表单的线格式包括NoneBothHorizontal和Vertical
Height数据表单控件高度
Width数据表单控件宽度
BoderStyle数据表单边框格式
BorderWidth数据表单边框宽度
BorderColor数据表单边框颜色
CellPadding数据表单控件大小
CellSpacing数据表单控件间间距
我们现在看一个举例
<%@ Register TagPrefix=Super Namespace=SuperexpertData
Assembly=SuperexpertDataForm %>
<html>
<head><title>DataFormStyleaspx</title></head>
<body>
<super:SqlDataForm
HeaderStylebackColor=Salmon
FieldStylebackColor=yellow
LabelStyleFontName=Script
LabelStyleFontSize=pt
FooterStylebackColor=blue
Cellpadding=
Cellspacing=
GridLines=Both
BorderStyle=Dashed
BorderColor=red
BorerWidth=px
LabelStyleBackColor=lightgreen
TableName=CustomerSurvey
ConnectionString=Server=Localhost;UID=sa;PWD=secret;Database=Pubs
runat=Server />
</body>
</html>
具体效果如下
http://wwwsuperexpertcontrolscom/dataform/samples/sampleaspx
4自定义布局的DataForm
我们也可以自己增加控件设计数据表单布局可以增加的控件如下
● DataTextBox
● DataDropDownList
● DataRadioButton
● DataCheckbox
● DataListBox
● DataRadioButtonList
● DataLabel
每一个控件都扩展了标准控件的功能这些控件都有两个属性DataField和DataTypeDataField让控件和数据库的具体字段联系起来DataType定义输入数据的类型以下是一个增加数据的举例
<%@ Register TagPrefix=Super Namespace=SuperexpertData
Assembly=SuperexpertDataForm %>
<Script runat=Server>
Sub Form_Submit( s As Object e As EventArgs )
myFormSave()
ResponseRedirect( ThankYouaspx )
End Sub
</Script>
<html>
<head><title>DataFormCustomLayoutaspx</title></head>
<body>
<super:SqlDataForm
id=myForm
TableName=CustomerSurvey
ConnectionString=Server=Localhost;UID=sa;PWD=secret;Database=Pubs
runat=Server>
Customer Name:
<br>
<super:DataTextBox
DataField=Customer
Runat=Server />
<p>
Age:
<br>
<super:DataTextBox
DataField=Age
Runat=Server />
<p>
Birthdate:
<br>
<super:DataTextBox
DataField=Birthdate
Runat=Server />
<p>
<asp:Button
Text=Add New Customer!
OnClick=Form_Submit
Runat=Server />
<p>
</super:SqlDataForm>
</body>
</html>
具体效果请看
http://wwwsuperexpertcontrolscom/dataform/samples/sampleaspx
三超级图像文字控件Superexpert ImageText
我们知道ASPNET可以将文字生成图象只是对我大部分用户而言这些功能藏的有点深Superexpert ImageText让我们可以很简单的实现将文字生成图象我们可以使用安装在服务器上的任何一款字体来生成图象也可以使用我们下面将要提到的所有图象特效来生成图象
我们可以利用Superexpert ImageText来快速的生成图象它的好处是我们可以完全控制文字的样式
1自动生成图象
要使用Superexpert ImageText我们只要简单的提供一个唯一ID和需要转化的文字下面的举例将生成Hello World
<%@ Register TagPrefix=Super Namespace=Superexpert
Assembly=SuperexpertImageText %>
<Super:ImageText
ID=ctrlHello
Text=Hello World!
Runat=Server/>
具体效果请看
http://wwwsuperexpertcontrolscom/imagetextbeta/samples/sampleaspx
为了取得更好的效果我们可以为文字设置字体和颜色也可以设置图象背景下面的举例就是这样
<%@ Register TagPrefix=Super Namespace=Superexpert
Assembly=SuperexpertImageText %>
<Super:ImageText
ID=ctrlComic
Text=Hello World!
FontName=Comic Sans MS
FontSize=
ForeColor=DarkBlue
Runat=Server/>
<p>
<Super:ImageText
ID=ctrlImpact
Text=Hello World!
FontName=Impact
FontSize=
ForeColor=Red
BackColor=Black
Runat=Server/>
具体效果请看
http://wwwsuperexpertcontrolscom/imagetextbeta/samples/sampleaspx
需要了解的是无论采用什么字体只要服务器上安装了所使用的字体就行只要已经转化为图象所有浏览器都可以正确的显示
2阴影特效
通过设置DropShadow属性我们可以将文字转化为带有阴影效果的图象
<%@ Register TagPrefix=Super Namespace=Superexpert
Assembly=SuperexpertImageText %>
<Super:ImageText
ID=ctrlDrop
Text=Hello World!
FontName=Impact
FontSize=
DropShadowDisplay=True
DropShadowxOffSet=
Runat=Server/>
具体效果如下
http://wwwsuperexpertcontrolscom/imagetextbeta/samples/sampleaspx
针对阴影效果我们还可以设置以下属性来增强
● DropShadowxOffSet水平方向偏移
● DropShadowyOffSet 垂直方向偏移
● DropShadowAlpha 设置阴影透明度
● DropShadowColor 设置阴影颜色
3旋转文字效果
通过设置文字的RotateFlip属性我们可以将文字进行旋转
<%@ Register TagPrefix=Super Namespace=Superexpert
Assembly=SuperexpertImageText %>
<Super:ImageText
ID=ctrlHello
Text=Hello World!
FontSize=
RotateFlip=RotateFlipNone
Runat=Server/>
<p>
<Super:ImageText
ID=ctrlHello
Text=Hello World!
FontSize=
RotateFlip=RotateFlipNone
Runat=Server/>
具体效果请看
http://wwwsuperexpertcontrolscom/imagetextbeta/samples/sampleaspx
四)控制图象背景
我们可以设置背景为渐进颜色图片或者特殊图案以下是一个渐进颜色背景的举例
<%@ Register TagPrefix=Super Namespace=Superexpert
Assembly=SuperexpertImageText %>
<Super:ImageText
ID=ctrlHello
BackGroundGradient=True
CellPadding=
Text=Hello World!
Runat=Server/>
具体效果请看
http://wwwsuperexpertcontrolscom/imagetextbeta/samples/sampleaspx
我们还可以使用BackGroundHatchStyle属性来设置特殊背景图案和图案颜色以下举例就是一个波纹图案背景的图象
<%@ Register TagPrefix=Super Namespace=Superexpert
Assembly=SuperexpertImageText %>
<Super:ImageText
ID=ctrlHello
CellPadding=
BackGroundHatchStyle=Weave
BackGroundStartColor=Green
Text=Hello World!
Runat=Server/>
具体效果请看
http://wwwsuperexpertcontrolscom/imagetextbeta/samples/sampleaspx
5多行文字
通过设置图象的宽度可以实现多行文字的效果
<%@ Register TagPrefix=Super Namespace=Superexpert
Assembly=SuperexpertImageText %>
<Super:ImageText
ID=ctrlHello
Text=This is a long paragraph that demonstrates how you can wrap text with the ImageText control
CellPadding=
Width=
BackColor=Orange
Runat=Server/>
具体效果请看
http://wwwsuperexpertcontrolscom/imagetextbeta/samples/sampleaspx
6定稿图象
如果不想每次页面变动都重新生成图象可以设置Final属性为True
四总结
以上介绍的一些控件我们在平时的设计中用的可能都比较多非常使用在我我们潜心研究ASPNET的同时我们可以学习利用这些工具来提高我们的工作效率和工作效果