登陆注册
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实用技术》这门课将带领我们走进网络的神秘殿堂,让我们认识网络,了解网络,进而学会使用网络,维护网络。其范围涵盖了在授课过程中所讲授的内容,题型多样,内容丰富,并附有两套模拟题,最后附有答案。学生可按照课程进度做习题来巩固和掌握知识。本作业集由李琳编写,由西北工业大学网络教育学院负责组稿和审定。因为时间仓促,水平有限,错误和不当之处在所难免,敬请读者批评指正。
  • 微软360度

    微软360度

    本书是由微软总部华人协会组织编写的第二本书,是《微软360度——企业和文件》一书的姐妹篇,本书将着重向你呈现微软总部的华人专家是如何一步一步地走向成功的及在微软总部成功的心路历程,以及如何应对挑战,揭示了微软成功的最重要秘密之一——人才至上,读者读后收获更多的是这些成功人士的成功经验,从而为自己的成功做出更好的规划。就让我们一起通过此书来看看微软公司人才至上管理的方方面面,聆听微软的心声,感觉微软的脉动吧。
  • 信息技术教育大全-计算机网络

    信息技术教育大全-计算机网络

    信息技术教育大全-计算机网络信息技术教育大全-计算机网络信息技术教育大全-计算机网络信息技术教育大全-计算机网络信息技术教育大全-计算机网络信息技术教育大全-计算机网络信息技术教育大全-计算机网络
  • 如何处理电脑故障

    如何处理电脑故障

    本书以问答的方式介绍了电脑会出现的各种故障,内容包括了音箱声音失真,如何处理?如何做好电脑的日常维护等等问题。
  • 计算机与人工智能(科学新知丛书)

    计算机与人工智能(科学新知丛书)

    本书是专门为中小学生编写的科普读物。全书共分八个部分,分别就计算机诞生的历程,计算机的种类、构造、作用及其发展趋势等方面进行了详尽的论述,全书论述深入浅出,行文活泼流畅。为本书的主要读者——广大的中小学生朋友认识计算机、了解计算机和掌握计算机提供了一把钥匙,是新时期中小学生开展素质教育不可多得的科普读物,中小学生家长及教师阅读此书也能从中获得有益的启示和感悟。
热门推荐
  • 大佬夫人又爬墙了

    大佬夫人又爬墙了

    十里八乡都知道,小柳湾景家的二丫头,匪里匪气,自小就是个惹不得的小霸王,偏偏村里的小子丫头们都喜欢跟她混。但凡被她看上的,就没有得不到手的。怎么?未来婆婆不许进她家大门?行呗~招呼手下小弟立马搬来大石头,她翻墙还不行么?咋的?隔壁班花来表白?可以~小姐妹们抱着小板凳排成圈,围观群众已就位,请开始你的表演!……被景莘莘二十四小时盯着的虞美人终于忍不住了:“说吧,你什么目的。”被一群大佬供着的景莘莘趴在墙头,眨巴眨巴眼睛很无辜:“人家就想罩着你嘛~”墙角下一众大佬小弟差点闪瞎钛合金狗眼:老大老大,你的嗓子要是被绑架了你就眨眨眼!虞美人勾唇:“我喜欢听真话。”
  • tfboys夏末初秋

    tfboys夏末初秋

    故事发生在上海。从针锋相对的敌人,到无话不说的朋友,他们的经历确实是所有人都为之惊叹的,虐心的感情纠葛,被当做友情的真爱,被当做爱情的友情。从善良的天使到有着天使外表的恶魔,经历的一切让她懂得,必须让自己变得强大,然而,这还只是故事的开始。迟来的真爱,无法挽回的真心,爱与不爱都是一场孽缘,留过的泪水,笑过的岁月,如果没有遇见过你,那么一切就不会发生,人累了,心狠了,学会伪装了,再也不会轻易流泪了,怪就怪我们太过年少,当学会珍惜时,我们以不在年轻。你的告白,太迟了!
  • 风生水起交好运

    风生水起交好运

    “风水先知一日,人生富贵十年”,有人说它是迷信,也有人是它坚定的信徒。
  • 爱丽丝漫游奇境记

    爱丽丝漫游奇境记

    《爱丽丝漫游奇境记》是英国作家路易斯·卡罗尔于1865年出版的儿童文学作品。故事叙述一个名叫爱丽丝的女孩从兔子洞进入一处神奇国度,遇到许多会讲话的生物以及像人一般活动的纸牌,最后发现原来是一场梦。
  • 不轻狂放肆怎么爱你

    不轻狂放肆怎么爱你

    余歌:我知道,有一些人,我终将失去,却无从告别。肖峰:我对我之前的懦弱感到抱歉,余歌,我喜欢你,就是胜过一切的理由,从今往后我不会再放开你手。林梓墨:我久久也放不下的人,现在放下了,爱了那么久的爱情,不爱了。宁初晨:笙歌,万一,他再等你呢?李安琦:笙歌,肖峰他在等你回去!终是吴浠坠下崖,肖峰才知情何在;终是梓墨失了心,余歌才知情所起;终是肖峰出了事,余歌才知情已深;终是余歌落下泪,肖峰才知情为何。十二年的爱恨情仇,从幼稚走向成熟,从懦弱走向勇敢。青春未老,而余歌不朽。爱极必伤,情深不寿,如饮鸩酒,见血封喉。
  • 都市坎坷路

    都市坎坷路

    平凡人物叶小天偶遇仙缘、踏上修仙路,但因资质平庸,却偶得逆天宝物跟功法。成就无上天地间的存在
  • 不务正业的篮球巨星

    不务正业的篮球巨星

    苦命的留学狗赵云,因为一个奇葩的篮球系统,被ESPN评为最浪费天赋的篮球巨星之一。在料理店当大厨,在录音室敲爵士鼓,在硅谷中成立公司,干尽不务正业的事情,一切只是为了最初的梦想--篮球!
  • 御兽武神

    御兽武神

    尚未出世就失去双亲,天赋惊人的他传承功法得到了凤翎诀,小小年纪就晋升为中级武师,斩杀黑狼王白狼皇,对战洪冥妖邪灵虎王,手刃仇人,威震九重,终成巅峰武帝!
  • 我爱炸毛,不要惹我

    我爱炸毛,不要惹我

    我们的林伊梦小朋友从小就是一个声音甜美长相可爱却又温婉似水的蓝孩纸,但想不到的是我们的林伊萌小朋友是个巨蟹座,骨子里有的是傲娇的气质,而这气质沉寂了十五年终于被我们的林伊萌小朋友的同桌安艺伦大总攻给逼了出来。让我们看看他们之间又会擦出怎样的火花……
  • 小溪从梦中流过

    小溪从梦中流过

    本书是郝天钦第二本诗集。诗于现代都市人来讲,是雅达者心灵的寄托。雅,在中国文化长河中,当是一曲宏大的交鸣曲。天钦应在其中,我们来看他是发出什么样声音的音符。