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

同类推荐
  • 信息技术教育大全-操作系统大全

    信息技术教育大全-操作系统大全

    本书系统介绍说明了有关电子信息系统及操作系统等知识,希望对该信息技术有需求的读者能够从中得到帮助。
  • 初级会计电算化

    初级会计电算化

    本书是作者根据历年会计从业资格考试的考试大纲以及多年对真题的分析,并结合多为专家、学者的实践经验而编写的。本书主要分为八套模拟试卷,以对考生考前的学习进行模拟实战,达到提高考生成绩的目的。
  • 中国移动智能手机的秘密

    中国移动智能手机的秘密

    《中国移动智能手机的秘密》是一本关于移动终端和移动互联网的科普书。作者将这18年通信行业中的学习、思考、实践积累成《中国移动智能手机的秘密》与大家分享。书本系统总结了手机的发展历史、TD产业界“从2G向3G演进”的移动终端产业分化重组进程、智能手机的使用方法用方法和应用指南,以及对移动互联网发展独特思考。
  • 大话设计模式

    大话设计模式

    本书主要采用JAVA语言介绍设计模式中比较常见的23种设计模式,分29章具体介绍,以现实生活中常见的事情为例来具体分析讲解。
  • 中国网络传播研究2009(第三辑)

    中国网络传播研究2009(第三辑)

    本文以传统社区研究的“场域论”为基础,探讨网络传播中场域性互动对社会舆论的影响。文章首先从传统社区传播的场域性特征出发,探讨网络传播的社区性和场域性。然后分别分析了传统门户、BBS论坛和私人博客等三种主流的网络传播的场域性互动、意见表达和舆论形成的特点。最后结合“张殊凡事件”、“王石捐款”事件以及“黑砖窑”事件,探讨网络传播中的场域性互动对社会舆论从虚拟到现实的影响。
热门推荐
  • 皇家独宠:小娇妻,要听话

    皇家独宠:小娇妻,要听话

    一次偶然的机会,他把她拐进了民政局,走进了婚姻的坟墓。“今后,你就是我孩子的母亲了!”“what?母亲?”把人骗到手后还空降一个宝宝,不带这么玩的?!婚后生活,全年无休,各种床咚、地咚、浴室咚、甚至还玩车震…“这日子没法过了,我要离婚……”“夫人,别慌,咱们换个姿势继续加油……”
  • 情深入骨:总裁,请温柔

    情深入骨:总裁,请温柔

    她本是天真安逸的小姐,却因为妹妹的野心被送给那个男人;突如其来的囚禁、男人霸道的占有、甚至无辜人的性命,肮脏的交易在她身上发生,她却始终无能为力……男人的手掌缓缓的摩挲着她的侧脸,眼中慢慢都是欲望,她反客为主。
  • 逆天大武宗

    逆天大武宗

    武魄逆天,拳可破山岳!纵横四海,刀下不留情!这是武力至上的残酷世界,又是一个不同寻常的江湖…
  • 一切如来正法秘密箧印心陀罗尼经

    一切如来正法秘密箧印心陀罗尼经

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

    无限末日守护

    神佛集体移民去了别的星球,而刚成为新人王的我。却被迫接受了保护地球这个烂摊子。不但要打怪,还得要打工。闲暇时间只能去别的位面旅游散心!
  • 纨绔小狂妻

    纨绔小狂妻

    九域活了三十多年,她想过自己的多种壮烈死因,万万没想到,她竟是被自己的雷劈死的,太憋屈了!重活一世,当然是要活的潇洒自由!看遍世界美男,吃遍天下美食!“挡在前面的男人让让,挡到我看美男了!没点儿眼力见!”“你说什么?”“嘿嘿,我说前面的空气让一让,挡到我看你了!”某女欲哭无泪!怎么跟她想的不太一样!
  • 灵起之契

    灵起之契

    地球第七轮灵气复苏即将到来,在十岁失去双亲的蓝离带着一个女婴生存了下来,在这灵气复苏之际,他会有什么成就呢?
  • 天行

    天行

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

    邪魅撒旦的恶魔游戏

    “这是一个恶魔游戏,所有天使禁止参与……”撒旦的歌声在午夜回荡,唤醒了沉睡的夜之魔王,也将恶魔们召集在了一起。“……残垣断壁,乌烟瘴气,所到之处没有生机,黑暗永远笼罩,这是撒旦的权利。”蛊惑人心的歌声再次响起,黑暗肆虐,光明步步失守,天使危已……————虚幻的现实,不可较真。另,作者日常断更,入坑千万谨慎!!!
  • 霸道舞会之爱的诅咒

    霸道舞会之爱的诅咒

    他,一生霸道冷酷,却甘愿为了那个星星和月亮的诅咒而倾尽所有。然而真相的背后竟藏着一个巨大的谎言,那是一场谁都逃不掉的骗局……如那个传说,月亮和星星不会拥抱,因为那个诅咒说,星星是月亮的眼泪,是得不到月亮的爱的。那么星星要跨越多少光年才能来到月亮的身边,拥抱月亮呢?请以深爱之名,忆一座城,念一个人!