登陆注册
8724600000029

第29章 软件构造(8)

5)CustomValidator控件

CustomValidator控件用于执行用户自定义的验证,这种校验既可以是服务器端的也可以是客户端的,下面的代码就是使用客户端验证邮编的例子。

Postal Code:

ControlToValidate=”TextBox1”ErrorMessage=”CustomValidator”

ClientValidationFunction=”ClientValidate”>;

6)ValidationSummary控件

这个控件会将页面中所有的校验错误输出为一个列表,列表的显示方式由DisplayMode属性设置。

Age:

ControlToValidate=”TxtAge”ErrorMessage=”Age Error!”

Display=”None”>;

Postal Code:

>;

HeaderText=”You must enter a value in the following fields:”>;

7.使用DataGrid实现数据操作功能(添加、删除、更新、排序、分页)

DataGridWeb服务器控件以表格式布局显示数据。默认情况下,DataGrid以只读模式显示数据,但是DataGrid也能够在运行时自动在可编辑控件中显示数据。下面提供的是一个管理人员维护界面的例子,其中实现了DataGrid的各种操作。

1)添加列

首先选中DataGrid,单击右键,选择“属性生成器”。单击左边的“列”,可以来增加要显示的列。我们可以看到有四种列:绑定列、按钮列、超级链接列和模板列。这里介绍绑定列和模板列,绑定列用来显示只读数据;按钮列和超级链接列的功能都可以用模板列来实现。

添加五个绑定列,从“可选列”选中“绑定列”,然后添加五个“绑定列”到“选定的列”中,分别是用户id、账户、密码、姓名、用户类型。其中用户id是每条记录的主键,用来定位每条记录,不显示这个字段,在“属性生成器”中把这一列的“可见”选项取消。并且为每一个绑定列在其下面的“绑定字段”中输入数据库中对应的列名称。

添加两个模板列,关闭“属性生成器”。

2)编辑模板列

选中DataGrid,单击右键,选择“编辑模板”。

在其中的ItemTemplate列中加入一个LinkButton按钮。

LinkButton属性设置:

CommandName:update

Text:更新

同样编辑第二个模板列,也在其中的ItemTemplate列中加入一个LinkButton按钮,属性设置:

CommandName:delete

Text:删除

3)在代码中为DataGrid添加数据源

Private Sub Page_Load(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles MyBase.Load

’在此处放置初始化页的用户代码If Not Me.Page.IsPostBack Then

’填充datagrid

Me.binddata()

Me.Panel1.Visible=True

Me.PanelUpdate.Visible=False

Me.PanelInsert.Visible=False

End If

End Sub

Private Sub binddata()

Dim dt As DataTable

dt=near.T_OperatorCollection.GetAllAsDataTable

Me.DataGrid1.DataSource=dt

Me.DataGrid1.DataBind()

End Sub

代码中的binddata()过程用来为DataGrid添加数据源。

4)为两个模板列中的LinkButton添加处理事件

Private Sub DeleteAndUpdate(ByVal source As Object,ByVal e As System.Web.UI. WebControls.

DataGridCommandEventArgs)Handles

DataGrid1.ItemCommand

If e.CommandName=”update”Then

TryDim row As T_OperatorRow=near.T_OperatorCollection.GetByPrimaryKey(Int(e.Item.Cells(4).Text))

Me.txtAccount.Text=row.OperatorAccount

Me.txtpassword.Text=row.Password

If row.OperatorType=”管理员”Then

Me.DropDownList1.SelectedIndex=0

Else

Me.DropDownList1.SelectedIndex=1

End If

Me.txtname.Text=row.RealName

Cache(”OperatorKey”)=row.OperatorID

Me.PanelUpdate.Visible=True

Me.PanelInsert.Visible=False

Me.Panel1.Visible=False

Catch ex As Exception

End Try

End If

If e.CommandName=”delete”Then

Try

near.T_OperatorCollection.DeleteByPrimaryKey(e.Item.Cells(4).Text)

Me.binddata()

Catch ex As Exception

End Try

End If

End Sub

以上的程序中,因为前面已经给两个LinkButton设置了CommandName属性,这里用e.CommandName来区别用户单击的是“更新”按钮还是“删除”按钮。这里先要说明的是这里有三个panel,分别放置DataGrid显示区域,更新操作区域,增加操作区域。如果用户单击的是“更新”按钮,我们只显示更新操作区域,其他区域隐藏。

5)为LinkButton添加确认

对于模板列中的“删除”按钮,要为这个LinkButton添加确认,也就是用户在单击“删除”按钮的时候,先要进行确认,经过用户同意后,再执行删除操作,以免错误删除某条记录。

Private Sub DataGrid1_ItemDataBound(ByVal sender As Object,ByVal e AsSystem.Web.UI. WebControls.DataGridItemEventArgs)Handles DataGrid1.ItemDataBoundIf e.Item.ItemType<;>; ListItemType.Footer And e.Item.ItemType<;>; ListItemType.

Header Then

Dim delbutton As LinkButton=CType(e.Item.Cells(6).Controls(1),LinkButton) delbutton.

Attributes(”onclick”)=”java:return confirm("确认删除吗?")”

End If

End Sub

6)为DataGrid添加分页功能

再次进入DataGrid的“属性生成器”,选择左边的“分页”。

然后为分页添加处理代码:

Private Sub DataGrid1_PageIndexChanged(ByVal source As Object,ByVal e As System.Web.UI. WebControls.DataGridPageChangedEventArgs)

Handles DataGrid1.PageIndexChanged

Me.DataGrid1.CurrentPageIndex=e.NewPageIndex

Me.binddata()

End Sub

注意:这里不要忘记重新绑定数据。

7)为更新区域和增加区域编写处理代码

这里用的思路是使用三个不同的panel分别负责“显示”、“更新”和“增加”功能,三个区域在同一个页面交替显示,使用非常方便。

更新区域实现代码:

"更新的确定

Private Sub btnConfirm_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles btnConfirm.Click

If Not Page.IsValid Then

Exit Sub

End If

’进行更新

Dim row As New T_OperatorRow

row.OperatorID=Cache(”OperatorKey”)

row.OperatorAccount=Me.txtAccount.Text.Trim

row.Password=Me.txtpassword.Text.Trim

row.RealName=Me.txtname.Text.Trim

row.OperatorType=Me.DropDownList1.SelectedItem.Text

Try

Me.near.T_OperatorCollection.Update(row)

Me.binddata()

Me.Panel1.Visible=True

Me.PanelInsert.Visible=False

Me.PanelUpdate.Visible=False

Catch ex As Exception

End Try

End Sub

实现代码:

"插入的存在,验证是否存在相同的账户

Private Function InsertAccountExist(ByVal account As String) As Boolean

同类推荐
  • 学校计算机实用技术

    学校计算机实用技术

    本书由杭州市上城区教育学院编著,他们邀请了众多信息技术教育教学的一线专家,认真细致地筛选了学校计算机应用方面的常见问题,提出了解决问题的具体操作方案,旨在帮助一线教育工作者解决可能面临的种种问题,为广大教师提供便捷服务。
  • 三维动画审美谈

    三维动画审美谈

    数字时代,美的标准充满更多的不确定性。而三维动画以数字图像形式成为这个图时代的代表。三维动画及三维图像不仅仅是由于应用了仿真数字图像技术而带来的虚拟空间,还有更多的是由三维图像技术所引发或引导的被扩展的图像技术,这些技术无不应用在现代视觉设计领域的各个方面,并且,由此引起社会的追热,引起审美观念的改变。这些改变是在进行中的,变化中的,也是在发展中的。对于未知的美,我们做的只是追寻和记录,我们不知道以后的美将会是什么样,尽管我们苦苦追寻,孜孜探讨,同时也在默默审视。我们在追寻中享受美,在探讨中认知美,在审视中体验美……
  • 《Internet实用技术》作业集

    《Internet实用技术》作业集

    随着计算机应用的普及和社会信息化水平的提高,Internet已走进我们的生活。《Internet实用技术》这门课将带领我们走进网络的神秘殿堂,让我们认识网络,了解网络,进而学会使用网络,维护网络。其范围涵盖了在授课过程中所讲授的内容,题型多样,内容丰富,并附有两套模拟题,最后附有答案。学生可按照课程进度做习题来巩固和掌握知识。本作业集由李琳编写,由西北工业大学网络教育学院负责组稿和审定。因为时间仓促,水平有限,错误和不当之处在所难免,敬请读者批评指正。
  • 数字博物馆研究与实践:2009

    数字博物馆研究与实践:2009

    本书汇集了“2009年北京数字博物馆研讨会”与会代表提交的60余篇论文和演讲报告、应用案例,分为数字博物馆(科技馆)发展研究探讨、数字博物馆(科技馆)多样性发展模式、数字技术在博物馆(科技馆)展陈中的应用、数字博物馆(科技馆)建设实践、数字博物馆(科技馆)实现技术和数字博物馆调研报告等六个部分。本书内容囊括了对数字博物馆(科技馆)建设宏观层面的全局思考以及微观层面的具体实践。在宏观层面,介绍了数字博物馆(科技馆)在国内外的发展现状与趋势,通过剖析典型案例,探讨数字博物馆(科技馆)建设的意义、目标、作用、建设原则、要素、特征及目前建设工作中存在的现实问题与对策。
  • 组态软件控制技术

    组态软件控制技术

    监控组态软件是完成数据采集与过程控制的专用软件,它以计算机为基本工具,为实施数据采集、过程监控、生产控制提供了基础平台和开发环境。本书从应用角度出发,详细介绍了组态软件应用程序的开发过程。对窗口界面编辑、动画链接、实时和历史趋势、安全机制、I/O设备连接,以及生产应用等内容都做了非常详细的介绍。MCGS是优秀的监控组态软件之一,它功能强大、使用方便,可以非常容易地实现监视、控制、管理的各项功能,并可提供软、硬件的全部接口,方便、快速地进行系统集成,构成不同需求的数据采集与监控系统。本书可作为高等学校计算机应用、自动控制、电子技术、机电技术专业的教材,同时还可作为相关专业工程技术人员的自学用书。
热门推荐
  • 阴证略例

    阴证略例

    本书为公版书,为不受著作权法限制的作家、艺术家及其它人士发布的作品,供广大读者阅读交流。
  • 罪罪

    罪罪

    有罪无事,点在书中,有罪无事,爱在心中。
  • 穿梭在轮回乐园

    穿梭在轮回乐园

    以误入者的身份进入轮回乐园,一股血气的帮助,一场场冒险的展开,阿拉德大陆,鬼灭之刃,海贼王。。。且看主角温智穿梭在各个世界,不断成长,逐渐变强! {轮回乐园类同人作品,作者节操满满,请放心入坑}
  • 武道药尊

    武道药尊

    太古大战世界崩坏,化为了三千大世界,亿万小世界。亿万年之后异族蠢蠢欲动,欲要卷土重来,大战即将爆发……正值此次,一代天骄龙宇横空出世……论实力:我有堪比神器的肉身;论神兵:我有镇压一切的至尊玲珑鼎;论奴仆;满天仙佛皆是我奴仆;龙宇手持血色战戟,脚踩五色神兽玄龟之上,虚空而立,遥看向前方,前方是无穷无尽,密密麻麻望不到尽头的异族。吼!滔天的狂暴气息铺天盖地而来,感受着这气息,龙宇热血沸腾……来吧,这一战我等好久了!修练路上,面对一个又一个的磨难……龙宇永不低头,凭借着强大的实力以及超凡入圣的炼药之术,以无比强横的姿态杀出一条属于他自己的逆天之路;
  • 天行

    天行

    号称“北辰骑神”的天才玩家以自创的“牧马冲锋流”战术击败了国服第一弓手北冥雪,被誉为天纵战榜第一骑士的他,却受到小人排挤,最终离开了效力已久的银狐俱乐部。是沉沦,还是再次崛起?恰逢其时,月恒集团第四款游戏“天行”正式上线,虚拟世界再起风云!
  • 修真客户端

    修真客户端

    一次偶然,唐易得到了一款‘修真客户端’,里面装载着各种修真应用软件......咦,原来这款导航软件可以找到稀有灵草和灵兽......这款修真游戏里面的仙子个个都是女神,游戏金币和道具还可以提现......什么?地球灵气稀少不适合修真?别担心,打开真宝网,轻轻点一点,各种丹药、法器任你挑选......我们承诺,让每一位修真者,过上富二代一样的生活!
  • 倾绝邪妃

    倾绝邪妃

    她,二十四世纪神医,杀手,神偷。被人陷害,意外穿越,君府嫡女三小姐。妹妹,姨娘,哥哥,所有陷害过她的人,加倍奉还。他,人界冥王,却还有另外复杂身世。他与她相遇,他邪魅“浅儿,你可是我的人,我怎么会舍得丢下你?”“我们不熟”这货一直缠她,烦。“浅儿,那么绝情?需要我验证吗”“。。。。。”她只想报完仇安静生活,这货还不给她安宁!!!感谢阅文书评团提供书评支持
  • 凡人意识

    凡人意识

    什么是意识?是所有生物都拥有意识,还是人类独有?察觉杀气果断反杀,遭遇GANK提前离开,意识存在万物之间。在不断萎缩的世界反面,少年背负起旧神的灵龛,从灰暗的历史中走了出来,决定带给凡人们新生。
  • 待罪舞阳

    待罪舞阳

    她,本该如烂泥般活着,可天不遂人愿,一召旨意,灭九族,小命呜呼!而她,一缕异世孤魂,两者的重合,陷入史上最乱的权谋争夺中,她该如何自保。他们的相遇,本是一番蓼花雨,奈何在水一方,如水中月,镜中花,皆是一叶障目。文人雅士,风骨流传,十六载,看尽繁华落烬,归来荏是光华灼灼。
  • 幻世强者

    幻世强者

    坚持是一种态度,更是一种巨大的忍耐力。坚持是一种希望,更是一种对生活的渴望。坚持是一种姿态,更是对自己的一种负责。哪怕孤独,绝望!