两个下拉列表框进行关联

这个功能是注册常见的功能模块之一,就是当你点击第一个包含省份的下拉列表框时,第二个包含城市的下拉列表相应的显示出来.如何实现这样的功能?
我个人认为数据库本身的设计很关键,设计如下:
                         Privince_Info表

列名 数据类型 长度 允许空
p  privince_id char    6
    privince varchar 50


                        City_Info表

列名 数据类型 长度 允许空
p  city_id char       6
   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编程各方面的知识.希望能够与大家交流!互相学习!
        

posted @ 2006-12-10 12:01  goalbell  阅读(1444)  评论(0)    收藏  举报