登陆注册
8724600000031

第31章 软件构造(10)

node3.Text=dt3.Rows(level3).Item(”CategoryName”)

’把第三层节点挂到到第二层节点上

node2.Nodes.Add(node3)

Next

’把第二层节点及其所有第三层字节点挂到到第一层节点上

node1.Nodes.Add(node2)

Next

’把第一层节点挂到树上

Me.TreeView1.Nodes.Add(node1)

Next

End Sub

Public Function GetData(ByVal SqlStr As String)As DataTable

Return SqlHelper.ExecuteDataset(SqlHelper.ConnectionString,CommandType.Text,_SqlStr).Tables(0)

End Function

11.如何使用DataList显示数据

ASP.NET提供了两个控件DataList和Repeater,这两个控件为呈现列表样式的数据提供了更大的灵活性。这些控件基于模板,因此没有自己的默认呈现形式。数据的呈现方式完全取决于控件模板的实现,而控件模板描述如何表示数据项。Repeater实际上并没有外观,必须要提供UI,这就意味着必须要使用一个模板。相反,DataList控件是一个捆绑到数据的列表,有一个默认的外观和丰富的行为。为这两个控件添加模板的方法是一样的。

<;%@Import Namespace=”System.Data”%>;

<;%@Import Namespace=”System.Data.SqlClient”%>;

’格式化DataList,并与数据源绑定

DataKeyField=”title_id”runat=”server”>;

书名:

CommandName=”Select”style=”color:darkred”runat=”server”ID=”Linkbutton1”

NAME=”Linkbutton1”/>;

价格:<;%#DataBinder.Eval(Container.DataItem,”price”,”{0}”)%>;

有了这个模板template,就可以指定用哪些HTML控件来组成数据,捆绑控件的每一部分。有5个模板的名字可以与DataList控件一起使用:HeaderTemplate用于控件的最顶端部分,ItemTemplate用于各个项目,Alternating—Item—Template用于其他项目,SeparatorTemplate用于各个项目之间的区域,FooterTemplate用于控件的底部。

在编辑DataList模板时,可以用VisualStudio.NET的模板编辑器进行编辑。在.NET环境中,选中DataList控件,单击鼠标右键,弹出菜单中的“项模板”。在项目模板中,控件的事件可以从DataList模板内激发,传递到与DataList本身连接的事件处理程序的命令。例如,ItemTemplate内的LinkButton可以激发Select命令。通过设置DataList的OnSelectedIndexChanged属性,可以调用事件处理程序响应此命令。

12.如何使用frame

很多商务网站的后台管理或者很多基于web管理信息系统最上面是标题区域;左下半部分是功能导航区,在图中是以树形的结构形式进行导航;右下半部分是操作区。这种界面风格简洁明了,也比较容易实现。在Web上这种界面风格常用框架(frame)来实现。

为了在.NET中使用框架,可以在工程中添加新项,选择框架页。并选择符合自己要求的框架结构。

13.如何在ASP.NET中使用JavaScript

JavaScript是被嵌入到网页中的HTML代码中,并且由浏览器来执行的脚本语言,可以用它来进行辅助设计。因为JavaScript可以被浏览器解释执行,即在客户端执行,这能提高我们网页的执行效率。例如,在页面提交前,对用户输入进行验证,出错弹出对话框,鼠标移动等功能。

下面通过一个例子来说明在ASP.NET后台如何使用JavaScript。例如,在打开某网页时,如果是非注册用户,需要弹出一个对话框进行提示,可以在PageLoad事件中写如下代码:

Private Sub Page_Load(…,…)Handles MyBase.Load

……

If not Isregiser() then

Response.Write(””)

End if

……

End sub

下例是单击按钮弹出新窗口:

Private Sub Button1_Click(…,…) Handles Button1.Click

Response.Write(””)

End Sub

6.6综合应用举例

6.6.1如何实现登录

对于软件系统,我们通过登录功能来验证用户身份,从而分配对应的用户权限。用户输入登录名和密码后,进行登录确认。确认分为两个步骤。

第一步是输入的登录名和密码是否符合格式要求。例如,规定登录名必须为20个字符以内的数字或字母组合。用控件RegularExpressionValidator来进行验证,需要在此控件的ValidationExpression属性输入正则表达式[azA—Z_0—9]{1,20}|S,并要把ControlToValidate属性定义为登录名框的名称。

同时规定登录名不能为空,那么用控件RequiredFieldValidator来进行验证。

如果验证有错误,需要提醒用户,这里使用控件ValidationSummary来显示错误的提示信息。ValidationSummary有两种显示错误的方式,一种是弹出框的形式,一种是标签的形式。下面是两种不同显示方式的属性设置。

弹出框:ShowMessageBox:true

ShowSummary:false

标签:ShowMessageBox:false

ShowSummary:true

第二步是验证登录名是否存在,密码是否正确。首先根据登录名查找有关用户的信息,如果查找不到,那么说明用户不存在。如果查找到用户信息,那么要把用户信息中的密码和界面输入的密码进行比较。如果一致,说明用户合法,分配给用户相应的权限;否则提示用户输入密码错误。

下面是具体代码:

Public Function Longin()As Integer

If Not Page.IsValid Then

Exit Function

End If

’获得确定登录名的账户记录

Dim dt As DataTable

Dim help As SqlHelper

dt=help.ExecuteDataset(SqlHelper.ConnectionString,CommandType.Text,_”GetAccountByName"”&;LogonEmailTextBox.Text&;”"”).Tables(0)

’验证是否查到了数据

If dt.Rows.Count=0 Then

clientkey=0

Return clientkey

End If

’比较密码,如果相同,则将账号付给ClientKey

If(dt.Rows(0).Item(”Password”)=LogonPasswordTextBox.Text)Then

clientkey=dt.Rows(0).Item(”AccountId”)

Return clientkey

Else

Return clientkey

End If

End Function

6.6.2如何实现注册功能

对于系统的使用,新的用户要进行登记注册,这在一些网站上是可以经常看到的。

这里强调两个问题。

第一个问题是登录名称的验证,包括以下要求。

①不能为空。使用控件RequiredFieldValidator。

②符合输入要求。比如20个字母和数字的组合,使用控件RegularExpressionValidator。

③名称唯一。使用控件CustomValidator,在程序中编写对应的处理函数,查询用户输入的登录名是否已经使用,如果已经存在这样的登录名,那么将控件CustomValidator的IsValid属性设置为false。

第二个问题是密码的确认,包括以下要求。

①不能为空。使用控件RequiredFieldValidator。

②符合输入要求。比如20个字母和数字的组合,使用控件RegularExpressionValidator。

③比较两次输入密码是否一致。使用控件CompareValidator,要使用两个CompareValidator控件,两个控件的ControlToValidate属性分别设置为要验证的控件,第一个CompareValidator控件的ControlToCompare属性为第二个CompareValidator控件验证的输入框,同理,第二个CompareValidator控件的ControlToCompare属性为第一个CompareValidator控件验证的输入框,这样就实现了两次密码的验证。

下面是具体代码:

Private Function NameExist(ByVal ClientName As String) As Boolean

Dim sql As SqlHelper

同类推荐
  • 成为淘宝创业的超级毕业生

    成为淘宝创业的超级毕业生

    本书讲述如何通过淘宝创业将大学在校生打造成为“超级毕业生”。主要内容包括大学生从事淘宝创业的理论基础、学以致用的操作指南,以及可资借鉴的案例。书中的理念篇可供对创业教育感兴趣的高校教师参考;实战篇提出的“淘宝十二招”,操作简单,易学易用;案例篇讲述了十位成功在校创业大学生的故事,主要供学生参考。读完本书,相信凡是关注大学教育者或希望通过淘宝创业的大学生,皆能从中获得启发,对创业从无心变有心,从有心变行动,亲身投入或参与到这个伟大的事业中来。
  • 如何组装电脑

    如何组装电脑

    本书以问答的形式介绍了组装电脑的基本知识。内容包括:电脑硬件的部件组成、CPU的发展历程、CPU主频、内存的组成、内存的主要性能参数等。
  • 云计算和现代远程教育

    云计算和现代远程教育

    本书介绍了云计算知识、云计算的特性、云计算技术、云计算中的访问云、云计算中的云存储、云计算在远程教育中的应用等内容。
  • 《Internet实用技术》作业集

    《Internet实用技术》作业集

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

    条形码技术与应用

    条形码是一种可供电子仪器自动识别的标准符号,是由一组黑白相间、粗细不同的条、空符号按一定编码规则排列组成的标记,用以表示一定的信息,确认某个物体或规定它的移动,能正确快速地为产、供、销各环节在采集、处理和交换信息时提供标识。
热门推荐
  • 逆天六小姐暗夜修罗

    逆天六小姐暗夜修罗

    “轰——”A市的一处偏僻的大厦发生了一起爆炸。“实验失败,还赔了命”紫夜苦笑一声,为了发明‘浮’这个烈性毒药,把自己的命都赔了进去,真是赔了夫人又折兵啊,不得偿失了。
  • 宠宠欲动:BOSS大人吻上瘾

    宠宠欲动:BOSS大人吻上瘾

    被好友和妹妹算计,她从陌生男人的床上醒来,对上的是一双含笑的凤眸。“禽兽!”她怒。他邪魅一笑,倾身压住,声音低沉魅惑:“擒的就是你!”她一次次逃脱,他一次次追逐,他把她压在墙角,“我讨厌追逐!”“我们之间扯平了!”“我睡你一次,你还没睡回来,怎么会扯平?”他勾唇。然而,他要的不是一次,不是两次,而是一辈子……
  • 没有你我还剩点什么

    没有你我还剩点什么

    奈笙追了周俞辰一辈子,最后等到一句对不起。可是周俞辰是奈笙的光没了他,她还剩点什么当奈笙站在桥头的那一刻他终于发现他从来都不了解奈笙或者说他不敢
  • 修表师什么的

    修表师什么的

    封面激情感谢愔羽酱。 古语有云,”明日复明日,明日何其多?”,这句话用在“能躺着绝不坐着,能坐着绝不站着”的宅女冉月身上,简直不要太合适!但是打死冉月她都想不到,她不过是去修个表,怎的,被帅哥老板拐完瑞士拐意大利?!EXCUSEME?到最后,还要被拆吃入腹?唔……谁能来救救她啊!
  • 快穿之宿主黑化历程

    快穿之宿主黑化历程

    001这辈子最后悔的就是契约了这么一个宿主,干啥啥不行,有个屁用(╬ ̄皿 ̄)凸……第n个位面,倾竹是一个皇帝,而宿主好死不死的杠上了boss……倾竹:那个,走错片场了(シ__)シ我我……我现在就走……倾夜:是吗?呵呵,可没那么好的事……病娇:姐姐,你说好了不会不要我的,那我把你吃了,这样我们就永远不会分开了……徒弟:师父,你说不会抛下徒儿的,放心,徒儿一定会找到师傅的……吸血鬼:主人,人家想你了…………一路的风景真好啊??(ˊωˋ*)??倾竹的发光发亮,001感觉自己碰到了个大佬
  • 青春的那场暗恋

    青春的那场暗恋

    那一年夏曦因为一个问题动心了,从此便越陷越深。他光芒万丈、高不可攀,而她只是最不起眼的那一个,他们终究是彼此生命中那个可有可无的过客,仅此而已
  • 总裁大大被调戏了

    总裁大大被调戏了

    医院门口的相遇,只因那轻轻一撞,就撞出了爱情的火花,他见过那么多的女人,都不感兴趣,却在第一次见面就起了要她的想法!据说,他,夜氏集团总裁,身边没有一个女人。据说,他,黑白通吃,再黑道上,是出了名的冷血。当他遇上她,却将一世温柔许给了她我!她,是一普通的大学毕业生,却有着自己的明星梦!她,和他签订了不平等合约,为了将这个局面扳倒过来,她……哼!调戏她是吧!那她也来调戏调戏他!最后,冷血无情,精明能干的他,居然被她给调戏了,而他,甘愿被她调戏……且看他们带给我们什么样的精彩故事!拭目以待吧!
  • 鲜妻喊令:白少,轻轻爱

    鲜妻喊令:白少,轻轻爱

    《绝对的宠文》一次错睡,帝少睡了差点成为小姨子的18岁野性小警花,便食髓知味,从此上瘾。初识,她躺在他床上,恶言相向,他欺身而下。她:“臭流氓,你这是犯罪....”他:“犯罪?要犯罪你也是主犯....失忆后重逢,他步步逼近,她:“你残害未成年.....”他:“已经害了,也不差这一次....!”原本野性的她,却被腹黑总裁一次次算计,落入“魔掌”。疼她入骨,宠她入魔!“白墨承,我恨你,恨你对我太好....!”他步步逼近:“只要我女人要的,我都给,当然,还有.....我也给!”他邪魅的笑...她:白墨承,你站住.....
  • 二道贩子的逆袭

    二道贩子的逆袭

    一本古老的族谱,一段传奇的故事,文物二贩子沈文,阴差阳错之下回到大明嘉靖后期,此时大明内忧外患,内有奸臣弄权,山河褪色,外有南倭北虏,狼烟四起,看一个小明士,在这山河沉沦的岁月里如何指点江山、书写风流。
  • 天谴魔主

    天谴魔主

    诸子百家,万道争鸣,神兵魔刃,遮蔽良善,君家被指祸乱天下,法家被斥残暴不仁,墨家被蔑视,亦被畏惧。世人庸碌,万古长夜,人道崩坏,因仲尼仁心而万古长明;侠者只闻煌煌黑日,诸侯混战,孟轲义礼庶出求道。诸子百家灭仁裂义者不胜反举,而以己心中之道游走诸国,以法破乱,以飘零身破天下大势,往事过眼云烟。心怀武安书,手握兵主的闻缺,奉兵,问诸子百家。