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

同类推荐
  • 三维动画审美谈

    三维动画审美谈

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

    悟道:一位IT高管20年的职场心经

    本书是一位有20多年职场经验的IT企业高管撰写的一系列有关职场悟道的短文集成,讲述的是在企业里如何修炼自己,如何摆平自己的心态,怎样做到“世事洞明”和“人情练达”,如何“搞定老板”,怎样做到工作和生活平衡等诸多话题,涉及到跳槽、转行、升迁、环境、沟通、老板、下属、老外等等。每一篇都以作者的亲身经历或者身边的故事说明道理,语言简洁流畅,妙趣横生,更有不少经典片段和发人深省的职场警句,读起来就像是一个睿智幽默的老朋友坐在你面前娓娓道来。
  • 不懂PowerPoint就当不好经理

    不懂PowerPoint就当不好经理

    经理人如何用PowerPoint,来规划部门的发展,如何用PowerPoint来表达自己的经营主张?本书为各类经理人提供了从入门到提高,从原理到实战的一系列知识,相信本书将让演示文稿为经理人的管理效能加分!
  • 智能计算方法概论

    智能计算方法概论

    本书以智能计算领域的若干前沿技术为主线,内容包括数字水印技术在版权保护区和身份认证中的应用,量子算法在信号处理、图像处理中的应用,量子数据挖掘技术,小波方法在医学图像处理中的应用等。
  • EDA技术

    EDA技术

    根据课堂教学和实验操作的要求,以提高实际工程设计能力为目的,深入浅出地对EDA技术相关知识作了系统和完整的介绍,相关知识作了系统和完整的介绍。
热门推荐
  • 一世圣途

    一世圣途

    群穿奇遇,无敌流,一行五人魂穿转世异界,什么,你是仙宗圣子?从小练剑一人之下万人之上?为什么我和妹妹在玩泥巴?你是帝国战神最宠爱的小女儿?山珍海味应有尽有?为什么我和妹妹在荒村啃兽皮?贼老天,在?出来挨打姜无定如是说本书魂穿只为奇遇过渡,结束后主角将与伙伴们回归蓝星
  • 大唐逍遥地主爷

    大唐逍遥地主爷

    魂回贞观之大唐地主爷花式种田 忆昔大唐贞观世,凌烟阁内二十四。 英雄壮志白发生,功名利禄后人评。 历史恢宏,仍有些许遗憾, 书笔刻画,再现盛世雄风。五姓七望?秋后的蚂蚱! 找我麻烦?我有西北大汉,奴仆三千! 李钰的梦想~做个最富有的地主大老爷 加入穿越大军的李钰对于土财主的身份不是很满意,也有幻想过自己要是皇子皇孙岂不是更加好玩… 或许是诸天大神听到了祈祷,又或者是命中注定,随着身世之谜,逐渐解开神秘的面纱,还真就是皇帝失散民间的大皇子…… …既如此那就来吧,生死看淡,不服就干 灭突厥,平吐蕃,定青海,开发岭南,三下大西洋…… 花式种田,有热血豪迈马革裹尸,还有平淡无奇的家长里短,三妻四妾东西两厢。三教九流上下尊卑。细节中体现封建王朝的时代文化,与复杂背景。各种大小人物都能爆发出独特的亮点,一样的大唐不一样的故事,值得阅读体验…
  • 历少的契约甜妻

    历少的契约甜妻

    苏柔以为只要三个月,她替苏曼还了历成枭的债,就能彻底的自由和外公离开这个城市。却没想到三个月后,历成枭堵在门口:“你觉得你偷了我的东西,就能这么轻易的一走了之!”闻言苏柔背靠着墙强撑着对上历成枭的双眸:“我没有偷你的东西,如果你不相信,可以搜。”却被历成枭反手抱在怀中,下巴抵着她的额头:“你偷走的是我的心啊。”说完,直接拉着苏柔去民政局。——这一次他要她出现在自家户口本上,成为彻彻底底的厉夫人!
  • 重生天后通灵师

    重生天后通灵师

    恒隆广场的巨型屏幕上,不断重复播放着歌坛天后杨春的告别演唱会花絮。天后的告别演唱会已经……
  • 呆萌少主的掌上明珠

    呆萌少主的掌上明珠

    一个神秘莫测的黑袍男人,一次突发异变的右眼金瞳使得于静姝穿越异世,遇见两个男人,一个俊美冷艳却心思深沉,一个憨厚老实,浩然正气,还有一只逗比的萨摩耶成精,一朵可爱的莲花精,一次寻宝途中:为母疯狂的孩子,为爱痴狂的男人,为国尽忠的忠诚,见钱眼开的故事,世界的崩塌究竟该由谁来拯救,让我看女主依靠聪明才智如何玩儿转异世……
  • 天行

    天行

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

    仙豆

    重生了,重生到高考前半年里。赖晓明是个极其普通的人,尽管有四年的未来经历,但是他发现其实自己并不能改变太多。不出意外未来还将是极其普通的一生。不过后来他发现和自己一同回到过去的还有一颗仙豆。仙豆种到土里,开花结果,会长出七片颜色各不相同的叶子。每片叶子都可以实现一个愿望。**我有一仙豆,花开七色叶,一叶一世界,叶叶有不同。
  • 我的超级应用宝

    我的超级应用宝

    屌丝马小庚送快递时意外被手机砸了头,脑袋里居然多出了一款应用宝的黑科技软件!且看马小庚如何用微信,相机,地图,阅读器等常用APP步步登天,超凡脱俗,走上人生巅峰。值此时,马小庚就问一句,装逼,还有谁是我的对手?
  • 安知冷暖

    安知冷暖

    冷暖没有想到梦里定下的亲事,竟然成了真!中元那日冷暖捡了一只落水的鸟,那鸟名叫“不归”是冥界与人间的信使,夜里她梦到阿爷和三个陌生人,陌生人同她提了亲,定下一桩婚事。三年之后,娶亲的人如约而至,办了三次婚礼,但都被打断了,第三次的前夜,她梦到新郎来寻她,让她明日夜里不要怕,这一次他会亲自带她离开。次日,她等不到昨夜人,等来了一清风朗月的男子,他说他是她的哥哥,要带她离开,找回丢失的记忆,将一切想起再考虑何去何从。这一场千年大局,苦的,只有痴情人……
  • 第八颗佛珠

    第八颗佛珠

    本为大龄宅女,白天上上班,晚上追追剧,高兴就逛商场,否则就连连看。谁知莫名得了一串佛珠,穿越到了陌生大陆。那谁谁谁,为什么会飞还会打。这啥啥啥,怎么连鸟都会说话。还能不能好好过日子了!凭着高考的勇气,看我如何闯天涯!