asp.net

位置:IT落伍者 >> asp.net >> 浏览文章

即刻完成你的ASP.NET程序


发布日期:2022年06月11日
 
即刻完成你的ASP.NET程序
ASPNET的出现使网络程序员们设计程序的时候完全找到了设计程序的感觉当然更多的他们感觉到了ASPNET的得心应手但是没有想偷懒就没有进步如果你仅仅依靠ASPNET自己的强大功能而不想其他手段那你很快就会发现别人设计程序比你会快很多而且轻轻松松现在我们来学习几招偷懒的手段让别人跟在你后面敬佩吧

使用过ASP的朋友一定都记得ASP的很多功能需要一些第三方的组件实现比如文件上传功能的实现就往往使用ASPCNUP组件实现使用这些组件不但可以扩展ASP程序的功能而且大大提高程序开发速度我们这里介绍的偷懒手段也就是介绍几款与我们平时设计密切相关的组件

超级数据表格SuperDataGrid

ASPNET自带的DatGrid功能强大定制也很方便但是因为它不是专门为数据库应用设计的所以在连接数据库的时候我们不得不首先连接数据库然后绑定数据而SuperDataGrid 是专门为数据库设计的所以那些繁琐的连接数据库我们也就没有必要去写了需要

SuperDataGrid将DataGrid的一些属性简单化使用这个控件我们可以方便的实现数据库数据的显示排序修改数据这些功能的实现只要简单几行代码就可以我们现在来看它的使用

显示数据表

以下代码演示怎样使用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语句

数据排序

在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中

数据分页

在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一样页码显示方式

数据编辑

我们知道在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中

缓存

ASPNET的缓存功能我们已经知道很强大但是具体到SuperDataGrid你会发现它更加方便使用SuperDataGrid的时候会自动缓存已经显示过的数据来提高程序效率设置缓存功能可以使用CacheScope属性我们可以设置缓存类型为ApplicationSession和 None

SuperDataGrid默认缓存类型为Application也就是所有用户共用缓存如果采用Session缓存只针对特殊的用户如果设置为None那就是不要缓存功能默认的缓存会保持分钟当然我们可以使用CacheDuration属性设置缓存时间单位为分钟

超级表单Superexpert DataForm

刚才我们看到SuperDataGrid已经具有数据修改功能但是由于数据浏览和修改同时进行实际上我们很少使用那种方式更多的我们还说采用单个记录修改

以往我们在使用表单修改或者增加数据库数据的时候需要作的工作很多比如设置数据格式等如果数据比较多那更加繁琐现在使用Superexpert DataForm我们可以简单的实现这些功能

Superexpert DataForm可以自动保存或者修改数据库数据还可以使用它自动从数据库生成表单(实际是浏览数据)我们甚至可以自定义样式来自动修改更新数据库表

从数据库自动生成表单

假设我们使用以下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

设置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

自定义布局的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来快速的生成图象它的好处是我们可以完全控制文字的样式

自动生成图象

要使用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

需要了解的是无论采用什么字体只要服务器上安装了所使用的字体就行只要已经转化为图象所有浏览器都可以正确的显示

阴影特效

通过设置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 设置阴影颜色

旋转文字效果

通过设置文字的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

多行文字

通过设置图象的宽度可以实现多行文字的效果

<%@ 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

定稿图象

如果不想每次页面变动都重新生成图象可以设置Final属性为True

总结

以上介绍的一些控件我们在平时的设计中用的可能都比较多非常使用在我我们潜心研究ASPNET的同时我们可以学习利用这些工具来提高我们的工作效率和工作效果

上一篇:使用ASP.NET中的用户控件[1]

下一篇:asp.net显示图片到指定的Image控件中