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