登陆注册
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

同类推荐
  • 中文版AutoCAD2011基础与应用案例教程

    中文版AutoCAD2011基础与应用案例教程

    本书采用项目教学方式,通过大量案例全面介绍了AutoCAD2011软件的功能和应用技巧。全书共分8个项目,内容涵盖AutoCAD2011基本操作,绘制与编辑图形,标注尺寸,添加文字注释与应用表格,创建与应用块,绘制与编辑三维图形,图形输出等。
  • 黑客就在你身边

    黑客就在你身边

    互联网络正在改变着我们的生活,每个人都处在互联网的天罗地网之中。本书以轻松的笔调,向人们介绍了有关“黑客”的知识。当你读完这本书后,你会发觉“黑客”一点都不神秘,他们渴望全社会对他们有一个公正的评价。
  • 玩转手机

    玩转手机

    本书主要包括:手机的发展历史、手机知识、手机的选购与巧用、手机与网络、手机短信等内容。
  • 微软360度

    微软360度

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

    纵横于天地之间——互联网络技术

    本书告诉你:不管你是谁,只要生活在当前的时代,你一定知道电话,知道电脑,知道上网……知道许许多多关于电子、关于计算机、关于网络的话题,这就是网络时代。网络的话题可多了:它是怎么来的?什么是“蜘蛛网”?网络的过去和现在,上网的方法,如何使用网络,互联网的安全,网络有“陷阱”吗?网络有“瘾”吗?网络文化和未来又是怎样的?到书中去找答案吧!
热门推荐
  • 绝色女帝:美男榻上约

    绝色女帝:美男榻上约

    一朝穿越成女尊国的盲公主,且看她如何一统江山,颠覆天下!只是这几个跟在她屁股后头的美男算什么?“无双,我想你了。”“双双快亲我。。”“双儿,有没有想为夫?”“白无双快给小爷一个爱的抱抱!”“小乖,床上约”某小白抱着娃:“请问,这是谁的孩子?”(这是一个影后边打江山边撩美男顺便生包子的传奇故事)(女尊np,不喜慎入。)
  • 黑暗中点点微光相聚

    黑暗中点点微光相聚

    为短篇故事,每一个故事都值得细细品读,但愿笔者的书能够给大家一些启发和帮助,为社会做贡献。
  • 公主别再调皮了

    公主别再调皮了

    五个公主与五个王子的爱恋秘密,她他们会擦出什么样的火花呢
  • tfboys的幸福爱恋

    tfboys的幸福爱恋

    有EXO的吴亦凡,鹿晗,黄子韬串客,吴世勋和朴灿烈也是主角
  • TFBOYS之爱的火花

    TFBOYS之爱的火花

    你我之间的邂逅,决定了一场轰轰烈烈的爱情,我的一生,似乎只为了你
  • 魔法怪物学院

    魔法怪物学院

    一所由两个世界合力创办的学院这里用魔法解读一切狼人,吸血鬼,僵尸,精灵,全都是我的同学,唯一的女同桌还是一位女巫。林二觉得自己身为一名人类,感觉鸭梨山大
  • 重生之将门帝后

    重生之将门帝后

    上一世满门含冤而死,这一世拼尽全力也要护我家人,要你血偿!你喜欢皇位?我偏偏扶持别人上位!你喜欢我?放你娘的屁!不过这个太子怎么没有一点感恩之心,我好心帮你,你却只想着把我拆吃入腹!保持一点距离好么,别靠这么近!谁知新婚之夜,才发现小东西竟然有两副面孔!
  • 泠雪婉清

    泠雪婉清

    安平伯府嫡女降生,却生而盲眼。龙安寺主持曾给安平伯府一则预示:安平伯爷为国征战,换来太平盛世,此为大善,然则,却不可避免的血光业债,此为恶。佛曰:善恶终有报。伯爷的幼女天生盲眼,为解伯爷此后业债。十三年后此女生有一劫,若过,则一世无忧,平安美满。否则,香消玉殒。此劫,无人可解。
  • 大道行远

    大道行远

    我从来没有想过要做一个什么样的人,我只想要随遇而安的活着。圣贤、前人的话很好听,但不中用,或许只在我身上不中用,我懒的要命,也懒得去听什么圣人云。仁义道德只在确定的时间地点才是伟大的,我没生错时间,但我挑错了地点,所以……
  • 缘来是总裁

    缘来是总裁

    尚贤,东帝集团的独生子,自小受到家庭的“特殊”教育,性格淡漠,内心阴冷。为体验生活而作为一名高三生被送往落后小镇,目空一切,只为消遣几分罪恶。宁云,一个身世坎坷,沉静冷漠的女孩,有意无意,从一开始便招惹上这位特别的转校生,喜怒哀乐,几经波折,终于打通了彼此封闭的世界,这时,他要被送出国。随着离别,他的真实身份也被宁云知晓,他们的距离,注定,一切美好不过是梦幻。大学四年,两相隔绝,宁云有了最好的朋友林歌,以及爱慕她的楚翔,三个人平静而快乐,直到尚贤再度闯入。他要和她回到以前的关系,拒不承认如何?家世背景如何?迫害者如何?未婚妻又如何?既然爱她,到死都是他着迷的妖……