两个下拉列表框进行关联
这个功能是注册常见的功能模块之一,就是当你点击第一个包含省份的下拉列表框时,第二个包含城市的下拉列表相应的显示出来.如何实现这样的功能?
我个人认为数据库本身的设计很关键,设计如下:
Privince_Info表
| 列名 | 数据类型 | 长度 | 允许空 |
| p privince_id | char | 6 | |
| privince | varchar | 50 |
City_Info表
| 列名 | 数据类型 | 长度 | 允许空 |
| p city_id | char | 6 | |
| f privince_id | char | 6 | |
| city | varchar | 50 |
上面表设计是参照SQL SERVER 2000
p 是主键
f 是外键
接着就是程序设计,程序设计的关键是如何将两个表关联起来.
我个人认为程序设计的关键是通过privince_id的传值来实现的.
代码如下:
Imports System.Data
Imports System.Data.SqlClient
Public Class WebForm1
Inherits System.Web.UI.Page
#Region " Web 窗体设计器生成的代码 "
'该调用是 Web 窗体设计器所必需的。
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
End Sub
Protected WithEvents DropDownList1 As System.Web.UI.WebControls.DropDownList
Protected WithEvents DropDownList2 As System.Web.UI.WebControls.DropDownList
'注意: 以下占位符声明是 Web 窗体设计器所必需的。
'不要删除或移动它。
Private designerPlaceholderDeclaration As System.Object
Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN: 此方法调用是 Web 窗体设计器所必需的
'不要使用代码编辑器修改它。
InitializeComponent()
End Sub
#End Region
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'在此处放置初始化页的用户代码
If Not Page.IsPostBack Then
Dim objConn As New SqlConnection
objConn.ConnectionString = "server=服务器名;uid=用户名;pwd=密码;database=数据库名" '改成你相应的服务器名,用户名,密码和数据库名就可以了
objConn.Open()
Dim sqlstr As String
sqlstr = "select * from Privince_Info"
Dim MyDa As New SqlDataAdapter(sqlstr, objConn)
Dim MyDs As New DataSet
MyDa.Fill(MyDs, "Privince_Table")
DropDownList1.DataSource = MyDs.Tables("Privince_Table")
DropDownList1.DataTextField = "Privince" '获取列表项提供文本的数据源字段
DropDownList1.DataValueField = "Privince_Id" '获取列表项提供值的数据源字段
DropDownList1.DataBind()
objConn.Close()
End If
End Sub
Private Sub DropDownList1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DropDownList1.SelectedIndexChanged
Dim objConn As New SqlConnection
objConn.ConnectionString = "server=服务器名;uid=用户名;pwd=密码;database=数据库名" '改成你相应的服务器名,用户名,密码和数据库名就可以了
objConn.Open()
Dim sqlstr As String
'接收传过来的值
sqlstr = "select * from City_Info where Privince_Id='" & DropDownList1.SelectedValue.ToString() & "'"
Dim MyDa As New SqlDataAdapter(sqlstr, objConn)
Dim MyDs As New DataSet
MyDa.Fill(MyDs, "City_Table")
DropDownList2.DataSource = MyDs.Tables("City_Table")
DropDownList2.DataTextField = "City" '获取列表项提供文本的数据源字段
DropDownList2.DataBind()
objConn.Close()
End Sub
End Class
我本人是一个asp.net的初学者,但我会不断追求web编程各方面的知识.希望能够与大家交流!互相学习!
浙公网安备 33010602011771号