DreamwaverMX与ASP.NET(五)

asp.net

.创建留言页面----数据验证控件及添加数据

相关介绍:

数据正确性是网站所必需的。为了更容易的检验使用者输入的数据是否正确,ASP.NET为编程人员提供了数据验证控件。ASP.NET提供的数据验证控件包括。(注意:为了能显示代码,以下所有代码都在“<”之后和“>”之前加了空格,不便之处请多原谅!):

控件

功能

RequiredFieldValidator

检验某一输入栏是否有数据输入

RangeValidator

检验某一输入栏所输入的数据是否在特定的范围内

CompareValidator

检验某一输入栏是否等于,不等于,大于,不小于,小于

ValidationSummary

列出所有未通过检验的控件

RegularExpressionValidator

检验某一栏是否符合正则表达式规则

CustomValidator

自定验证规则

STEP 1 设计页面
我们先用表格设计出大概的框架。由于数据库中的COMMENTS表中有

[图5-1 数据库框架]

COMMENT_ID(自动编号),FIRST_NAME(文本),LAST_NAME(文本),TELEPHONE(文本),EMAIL(文本),SUBMIT_DATE(日期/时间),COMMENTS(备注),ANSWERED(布尔值)等字段。根据需要我们在站点中设计了如下图的页面,命名为reg.aspx。

[图5-2 最初页面]

其中COMMENT_ID,是可以由ACCESS自动添加的,ANSWERED不需要用户自己添加。在SUBMIT_DATE的默认值设置为Now(),则会由ACCESS自动写入添加纪录的日期。

以前的ASP页面中,我们可以通过来设置输入框来输入数据。ASP.NET中带有textbox控件来接受数据,语法如下:

< asp:textbox id=”…” runat=”server” 其他属性/ >

在DreamweaverMX中可以通过单击 快捷按钮来添加textbox控件。在弹出的对话框中通过设置ID,text mode(对话框类型),tool tip(即鼠标悬于控件上的提示),以及Layout(样式设计),Style Information(用于设置输入文字格式以及textbox边框格式),来设置控件。下图是textbox的设置对话框。

[图5-3 textbox设置对话框1]

[图5-4 textbox设置对话框2]

[图5-5 textbox设置对话框3]

由于数据项COMMENT需要输入大量的文字,所以需要用到多输入行的textbox。只需设置text mode为MultiLine并输入所需的行数(Rows)即可。

为了产生添加的事件,还需要一个按钮。单击Forms标签,单击”button”按钮添加。

STEP2 数据验证的使用

由于First_name,Last_name,telephone,email是必须输入的,所以为了防止用户忘记输入,则可以添加RequiredFieldValidator控件来验证控件。由于控件会在出现验证有误的情况下在其所在的位置显示验证不通过的内容,故应在适当的位置放入数据验证控件。

RequiredFieldValidator数据验证的控件语法如下:

< asp:RequiredFieldValidato其他属性 runat=”server” >出错信息< / asp:RequiredFieldValidator >

< asp:RequiredFieldValidator ErrorMessage="出错信息" 其他属性 runat=”server”/ >

在单击More Tags后,选择ASP.NET Tags的Validation Server可以看到有不同类型的数据验证控件选择。我们需要在First_name的输入框后面添加验证控件asp:RequiredFieldValidator。

在RequiredfieldValidator控件设置窗口中,Control to Validate是为与此数据验证控件相关联的输入控件的ID,而Error Message就是数据验证失败的时候显示的信息。同时我们可以通过设置layout,style Information来选择所需的样式。

[图5-6 验证控件选择]

[图5-7 RequiredfieldValidator控件设置对话框]

同时在Last_Name输入框后面用相同的方法添加另一个RequiredFieldValidato数据验证控件。现在我们可以保存,并预览页面。当没有在First_name和Last_name输入框中输入数据而且单击Submit按钮的时候,就会出现验证失败消息。如图5-8所示。

但是很多时候我们需要验证有效的数据,比如邮政编码一定为6位,输入的Email地址需要有特定的形式。这里就需要用到RegularExpressionValidator来验证数据的有效性。在本注册页面中,telephone和Email都可以用到此控件来验证。

[图5-8 RequiredfieldValidator对话框]

[图5-9 Email设置属性]

同RequiredfieldValidator验证控件添加的方法类似,单击”More tags..”选择添加数据验证控件。不同的地方就是设置Validation Expression。由于telephone需要输入7-10位的数字,需设置如下:

[0-9]{7,10}

其语法如下:

[]:用来定义可接受的字符,如a-z表示小写的’a’-‘z’都是可接受的字符,a-zA-Z表示可接受所有字母,而0-9就表示可以接受所有数字。

{}:用来定义必须输入的字符数,{7,10}表示可以输入7-10个字符,{0,}表示可以接受0-无限多个字符。

‘.’:表示输入任意字符。.{0,}表示可接受0-无限多个任意字符。

| :表示OR(或),例如[A-Za-z]{3}|[0-9]{3}表示可以接受3个英文字母或是3个数字

():为了方便阅读,含有|符号的字符串通常会被()之中。例如([A-Za-z]{3}|[0-9]{3})。

\:如果含有[],{},(),|等特殊符号必须在这些字符串之前加上\.。

下列是一些比较常用的例子:

Email: .{1,}@.{1,}/..{1}

电话(包括区号): \([0-9]{3,4})\)[0-9]{7,8}

虽然不可以保证用户输入是其真正的资料,但是检验控件可以保证格式是对的。

[图5-10 预览页面]

至于CompareValidator控件,其各属性设置方法如下:

Control to Compare

设置与其相比较的控件

Control to Validate

设置与其相关联的控件

Value to Compare

设置相比较的值

Operator

设置比较的关系(等于,不等于,大于,大于等于,小于,小于等于)

Type

比较的数据类型

Error Message

显示信息


[图5-11 CompareValidator设置对话框]

CustomValitor设置方法与其他控件类似,但是需要手写函数OnServerValidate(在Events中)来验证数据。

[图5-12CustomValitor设置对话框]

例如

< asp:CustomValidator id=”CusValid” runat=”server” ControlToValidate=控件名 OnServerValidate=”TheFunction” >报错信息< / asp:CustomValidator >

< script language=”vb” runat=”server” >

Function TheFunction(sender as object,,value as string) as Boolean

……..

return …

End function

< /script >

此控件会调用TheFuncion函数,如果返回false则会有报错信息。
RangeValidator控件

[图5-12 RangeValidatorr设置对话框]

可以通过Mininum Value(最小值),Maxinum Value(最大值)来设置值的范围。同时可以通过Type来设置比较的类型,例如”string”,”Integer”等。其他设置类似于其他组件的设置。

还有一个组件:ValidationSummary。其中HeaderText设置抬头文字,DisplayMode设置显示模式,其具体属性如下:

属性值

意义


List

BulletList

SingleParagraph


ErrorMessage分行显示

ErrorMessage分项显示

ErrorMessage显示成同一行


[图5-13 ValidationSummary属性设置对话框]

代附上主要程序段的源代码:

< table width="75%" height="594" border="1" cellpadding="1" cellspacing="0" bordercolor="#999999" >

< tr >

< td width="22%" height="22" >First Name< /td >

< td width="38%" >< asp:textbox BackColor="#CCCCCC" ForeColor="#0033FF" ID="first" runat="server" TextMode="SingleLine" ToolTip="Please input the first name" MaxLength="40" BorderWidth="1" width="200"/ >< /td >

< td width="40%" >< asp:requiredfieldvalidator BackColor="#CCCCCC" ControlToValidate="first" ErrorMessage="RequiredField" ForeColor="#FF0000" ID="validname" runat="server" / > < /td >

< /tr >

< tr >

< td height="22" >Last Name< /td >

< td >< asp:textbox BackColor="#CCCCCC" ForeColor="#0033FF" ID="Lastname" runat="server" TextMode="SingleLine" Width="200" ToolTip="Please input the last name" BorderWidth="1"/ >< /td >

< td >< asp:requiredfieldvalidator BackColor="#CCCCCC" ControlToValidate="Lastname" ErrorMessage="RequiredField" ForeColor="#FF0000" ID="vailLast" runat="server" / > < /td >

< /tr >

< tr >

< td height="22" >Telephone< /td >

< td >< asp:textbox BackColor="#CCCCCC" BorderWidth="1" ForeColor="#0066FF" ID="telephone" runat="server" TextMode="SingleLine" ToolTip="Please input your telephone" Width="200" / >< /td >

< td > < asp:regularexpressionvalidator BackColor="#CCCCCC" ControlToValidate="telephone" ErrorMessage="7-10 numbers required" ForeColor="#FF0000" ID="vailtel" runat="server" ValidationExpression="[0-9]{7,10}" / > < asp:requiredfieldvalidator BackColor="#CCCCCC" ControlToValidate="telephone" ErrorMessage="RequiredField" ForeColor="#FF0000" ID="vailtel2" runat="server" / >< /td >

< /tr >

< tr >

< td height="22" >Email< /td >

< td >< asp:textbox BackColor="#CCCCCC" BorderWidth="1" ForeColor="#0033FF" ID="email" runat="server" TextMode="SingleLine" ToolTip="Please input your E-mail" width="200"/ >< /td >

< td >< asp:regularexpressionvalidator BackColor="#CCCCCC" ControlToValidate="email" ErrorMessage="Invaliate Email address" ForeColor="#FF0000" ID="valiemail" runat="server" ValidationExpression=".{1,}@.{3,}" / > < asp:requiredfieldvalidator BackColor="#CCCCCC" ControlToValidate="email" ErrorMessage="Required Field" ForeColor="#FF0000" ID="valiemail2" runat="server" / > < /td >

< /tr >

< tr >

< td height="22" colspan="3" >< div align="center" >Comments< /div >< /td >

< /tr >

< tr >

< td height="188" colspan="3" >< div align="center" >

< asp:textbox BackColor="#CCCCCC" BorderWidth="1" ForeColor="#0033FF" ID="Comments" Rows="16" runat="server" TextMode="MultiLine" ToolTip="Please input the Comments" width="400"/ >

< /div >

< div align="center" > < br >

< /div >< /td >

< /tr >

< tr >

< td height="71" colspan="3" >< div align="center" >

< asp:validationsummary BackColor="#CCCCCC" DisplayMode="BulletList" ForeColor="#FF0000" HeaderText="有误的内容包括:" ID="valSum" runat="server" ToolTip="Error" / >

< /div >< /td >

< /tr >

< tr >

< td height="22" colspan="3" >< input type="submit" name="Submit" value="Submit" >

< /td >

< /tr >

< /table >

样式如下:

[图5-14 预览]
STEP 3 数据添加

至于实现添加数据的功能就比较简单,我们可以通过向导来设置添加数据的功能,并让DreamweaverMX自动添加代码。单击Application中的Server Behaviors标签,而后单击+按钮从中选择Insert Record(如图5-15)。

在弹出的对话框中首先要确定相连的数据源。如果在列表中没有找到,可以单击Define按钮设置数据源(如图5-16)。Insert into table用于设置需要添加数据的表,Columns中可以将文本框和对应的数据源相对应,并设置数据类型。On success,Go To中是设置如果添加数据成功跳转到的页面。On Failure,Go To中可以设置添加数据失败跳转到到的页面,同时我们也可以选择Display Debugging Information On Failure设置在添加数据失败显示报错信息。

[图5-15选择Insert Record]

[图5-16数据添加设定]

让我们看看添加的代码:

< MM:Insert

runat="server"

CommandText='< %# "INSERT INTO COMMENTS (COMMENTS, EMAIL, FIRST_NAME, LAST_NAME, TELEPHONE) VALUES (?, ?, ?, ?, ?)" % >'

ConnectionString='< %# System.Configuration.ConfigurationSettings.AppSettings("MM_CONNECTION_STRING_location") % >'

DatabaseType='< %# System.Configuration.ConfigurationSettings.AppSettings("MM_CONNECTION_DATABASETYPE_location") % >'

Expression='< %# Request.Form("MM_insert") = "form1" % >'

CreateDataSet="false"

SuccessURL='< %# "index.htm" % >'

FailureURL='< %# "reg.aspx" % >'

Debug="true"

>

< Parameters >

< Parameter Name="@COMMENTS" Value='< %# IIf((Request.Form("Comments") < > Nothing), Request.Form("Comments"), "") % >' Type="WChar" / >

< Parameter Name="@EMAIL" Value='< %# IIf((Request.Form("email") < > Nothing), Request.Form("email"), "") % >' Type="WChar" / >

< Parameter Name="@FIRST_NAME" Value='< %# IIf((Request.Form("first") < > Nothing), Request.Form("first"), "") % >' Type="WChar" / >

< Parameter Name="@LAST_NAME" Value='< %# IIf((Request.Form("Lastname") < > Nothing), Request.Form("Lastname"), "") % >' Type="WChar" / >

< Parameter Name="@TELEPHONE" Value='< %# IIf((Request.Form("telephone") < > Nothing), Request.Form("telephone"), "") % >' Type="WChar" / >

< /Parameters >

< /MM:Insert >

MM:Insert是Dreamweaver用于添加数据库的标签,Parameter就是用于指定参数的数值。

前面的代码就是用于指定数据库链接以及添加成功后跳转到的页面,添加失败显示错误信息,还有相关联的表格。

这些都是MacroMedia自己开发的,需要Macromedia的一些组件支持,与现在网上很多ASP.net的标准代码格式不同。请大家参照代码的时候不要根据此代码而错误理解ASP.net的标准代码格式。标准代码格式大家可以参看www.gotdotnet.com。如果大家想写标准的代码,可以使用WebMatrix,下载地址: http://www.asp.net/webmatrix/download.aspx?tabindex=4

时间: 2025-01-24 20:18:29

DreamwaverMX与ASP.NET(五)的相关文章

ASP中五种连接数据库的方法

连接数据库 ASP中五种连接数据库的方法 简介 介绍ASP连接sql,连接access,等数据库的方法! 正文 ASP中五种连接数据库的方法 第一种 - 这种方法用在ACCESS中最多 strconn = "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" & Server.MapPath("aspfree.mdb") set conn = server.createobject("adodb.connect

DreamwaverMX与ASP.NET(一)

asp.net 自从微软提出.NET战略之后,编程爱好者对其趋之若鹜.不过,.NET也的确令人惊讶,新的语言C#,新的web服务----web service,当然少不了广大编网爱好者的挚爱---ASP的下一代------ASP.net.然而,ASP.NET并未普及,只是因为没有一个好的编辑器.人们经历了手写板,VisualStudio.NET等编辑器,直到Dreamwaver MX的出现才真正达到了不用手写代码的程度了. DreamweaverMX将数据库和网页完美的结合在一起,对新的网页编程

坚持学asp.net——(五)

asp.net c#中的数据字符类型: string不能存储在堆栈中,显然属于引用类型:char则明显属于值类型. 字符串类型: 声明一个字符串类型时,不是在堆中创建一个字符串对象,而只是在堆栈中创建了一个字符串的引用,还没有引用字符串对象. 不包含任何字符的字符串,称为空字符串. char(字符)类型: 将文本以数的形式存储,将单个的字符放在char的变量中,且它存储为一个0~65535之间的16位数值形式,表示一个unicode字符. 转义字符: \' 单引号 \" 双引号 \\ 斜杠 \0

ASP.NET五步打包下载Zip文件实例_实用技巧

首先分享几个振奋人心的新闻: 1.谷歌已经宣布加入.NET基金会 2.微软加入Linux基金会,继续对Linux示好.换了CEO就是不一样 3.微软发布VS For Mac! 第一步   下载dll 在Nuget里安装下面这个dll 第二步   下载方法 项目结构 在我们的一般处理程序中加入如下方法 ///<summary> /// 批量打包下载 Author:吴双 /// </summary> /// <param name="fileName">

DreamwaverMX与ASP.NET(四)

asp.net 4.利用DataList组件显示数据集 相关介绍: DataList是功能强化的Repeater控件,除了有Repeater原有的功能外,还可以设定单行显示数据的笔数(RepeatColumn),被选项样板(SelectedItemTemple),编辑项样板(EditTemplate).但是DataList会将输出的数据安排在表格中输出,而Repeater则更忠于样板的定义,不会添加任何HTML标记.(注意:为了能显示代码,以下所有代码都在"<"之后和"

DreamwaverMX与ASP.NET(三)

asp.net 3.利用Repeater组件显示数据集 相关介绍 ASP.NET中数据的显示多种多样,其中Repeater是另外一个已有的组件.DataGrid总是会以"表格"来展示数据,当我们想用更自由的方式来展示数据着一定会用到Repeater控件, 它以Template(样板)的方式来定义数据输出格式. STEP 1. 建立页面我们可以通过更改原有的页面来建立用Repeater组件显示数据.将Location1.htm重命名为Location1.aspx.删除页面中原有的部分,并

十天学会ASP第五天[ASP教程基础系列]

学习目的:学会数据库的基本操作1(写入记录)    数据库的基本操作无非是:查询记录,写入记录,删除记录,修改记录.今天我们先学习写入记录.先建立一个表单:<form name="form1" method="post" action="example5.asp">name <input type="text" name="name"><br>tel <input

坚持学asp.net——(五2)

asp.net 当数据转换到asp.net页面时,大部分都是以文本的形式存在的.有时候为了输出,单单使用显示或者隐式转换都是不行的,就需要本节说到的数据转换. 字符串输出: int intAge=21; string strAge=intAge.ToString(); 转换DateTime值时,可以通过在括号内放置一个可选的参数来指定时间的输出样式.eg:dateCou.ToString("d"); 格式化代码及其含意: D--以下列格式给出日月年:Thursday,september

提高SQL的执行效率的ASP的五种做法_应用技巧

[b]方法一.尽量使用复杂的SQL来代替简单的一堆SQL[/b] 同样的事务,一个复杂的SQL完成的效率高于一堆简单SQL完成的效率,有多个查询时,要善于使用JOIN. oRs=oConn.Execute("Select * FROM Books")  while not ors.Eof      strSQL = "Select * FROM Authors Where AuthorID="&oRs("AuthorID") ors2=o