和(一)比较,这个示例使用了StringBuilder构造含客户端控制脚本的字符串,并且用到了Environment.NewLine实现换行.下面是代码:
<%@ Page Language="VB" Debug="true" %>
<%@ Import Namespace="system.data" %>
<%@ Import Namespace="system.data.oledb" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Public Sub page_load(ByVal o As Object, ByVal e As System.EventArgs)
'建立数据库连接
Dim conn As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("DB_ProvinceCat.mdb") & ";User Id=;Password=;") '如果设置了web.config,也可以从web.config中读取数据库连接字符串
conn.Open()
Dim cmd As OleDbCommand = New OleDbCommand
cmd.Connection = conn
'=====================================================================================
'生成客户端脚本控制的联动菜单
'查询Tb_Province表获得所有的省份
Dim sqlstr As String = "SELECT ProvinceCode, ProvinceName FROM Tb_Province order by ProvinceCode"
cmd.CommandText = sqlstr
Dim sqlda As OleDbDataAdapter = New OleDbDataAdapter(cmd)
'建立临时表存储省份数据
Dim Province As DataTable = New DataTable
sqlda.Fill(Province)
'Response.Write("将省份数据绑定到DropDownList1控件")
'Response.End()
'将省份数据绑定到DropDownList1控件
DropDownList1.DataSource = Province
DropDownList1.DataValueField = "ProvinceCode"
DropDownList1.DataTextField = "ProvinceName"
If Not IsPostBack Then DropDownList1.DataBind()
'获取省份的个数
Dim ProvinceNum As Integer = Province.Rows.Count()
'使用StringBuilder构造含客户端控制脚本的字符串
Dim sbscript As New System.Text.StringBuilder
sbscript.Append("<script><!--")
sbscript.Append(Environment.NewLine & "var group=new Array(" & ProvinceNum & ");" & Environment.NewLine & "for (i=0; i<" & ProvinceNum & "; i++){group[i] = new Array()}" & Environment.NewLine)
'循环从省份临时表中取出一个省份,然后在数据库中查询此省份下的城市
Dim i As Integer
Dim j As Integer
Dim tempclass As DataTable
Dim CityNum As Integer
For i = 0 To ProvinceNum - 1
sqlstr = "SELECT CityCode, CityName FROM Tb_City WHERE Left(CityCode,2) = '" & Province.Rows(i)(0) & "' order by CityCode"
cmd.CommandText = sqlstr
sqlda = New OleDbDataAdapter(cmd)
tempclass = New DataTable
sqlda.Fill(tempclass)
CityNum = tempclass.Rows.Count()
'Response.Write("省份:" & Province.Rows(i)(0) & "有市" & CityNum & "个<br>")
'将读取到的城市数据放入客户端脚本中
For j = 0 To CityNum - 1
sbscript.Append("group[" & i & "][" & j & "]=new Option(""" & tempclass.Rows(j)(1) & """,""" & tempclass.Rows(j)(0) & """);" & Environment.NewLine)
Next
Next
'加入客户端脚本控制代码
sbscript.Append(Environment.NewLine & "function Redirect(x){" & Environment.NewLine & "for (m=Form1.DropDownList2.options.length-1;m>0;m--){Form1.DropDownList2.options[m]=null}")
sbscript.Append(Environment.NewLine & "if (group[x].length==0){")
sbscript.Append(Environment.NewLine & "Form1.DropDownList2.options[0]=new Option('---请选择---','无')}")
sbscript.Append(Environment.NewLine & "for (i=0;i<group[x].length;i++){" & Environment.NewLine & "Form1.DropDownList2.options[i]=new Option(group[x][i].text,group[x][i].value)}")
sbscript.Append(Environment.NewLine & "Form1.DropDownList2.options[0].selected=true;Form1.classid.value=Form1.DropDownList2.options[0].value;}")
sbscript.Append(Environment.NewLine & "function choose(x){Form1.classid.value=Form1.DropDownList2.options[x].value;}")
sbscript.Append(Environment.NewLine & "-->")
sbscript.Append("<")
sbscript.Append("/")
sbscript.Append("script>")
'注册客户端脚本,将脚本内容写入客户端输出流
Dim strscript As String = sbscript.ToString()
If (Not IsClientScriptBlockRegistered("clientScript")) Then
RegisterClientScriptBlock("clientScript", strscript)
End If
'=====================================================================================
'初始化DropDownList2中的内容
sqlstr = "SELECT CityCode,CityName FROM Tb_City WHERE (Left(CityCode,2) = '" & Province.Rows(0)(0) & "')"
cmd.CommandText = sqlstr
sqlda = New OleDbDataAdapter(cmd)
Dim dtCity As DataTable = New DataTable
sqlda.Fill(dtCity)
DropDownList2.DataSource = dtCity
DropDownList2.DataValueField = "CityCode"
DropDownList2.DataTextField = "CityName"
If Not IsPostBack Then DropDownList2.DataBind()
sqlda.Dispose()
cmd.Dispose()
conn.Close()
'DropDownList1.Attributes.Add("OnChange", "Redirect(this.options.selectedIndex)")
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="Form1" runat="server">
<div>
省份:<asp:DropDownList ID="DropDownList1" runat="server" onchange="Redirect(this.options.selectedIndex)" >
</asp:DropDownList>
城市:<asp:DropDownList ID="DropDownList2" runat="server" onchange="choose(this.options.selectedIndex)">
</asp:DropDownList>
<P><INPUT id="classid" type="text" runat="server"></P>
</div>
</form>
</body>
</html>
总结:
Environment 成员:提供有关当前环境和平台的信息以及操作它们的方法。无法继承此类。
公共属性:
| NewLine | 获取为此环境定义的换行字符串。 |
浙公网安备 33010602011771号