我的页面有两个dropdownlist,一个用来选择课程,其中一个dp1绑定课程类别cname字段,另一个subject绑定课程名lname字段,我想让用户选择dp1后subject的数据内容马上跟着改变。主要程序如下:
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) 
        If Not Page.IsPostBack Then
            Dim cnn As New OleDb.OleDbConnection
            Dim cmd As New OleDb.OleDbCommand
            Dim da As New OleDb.OleDbDataAdapter
            Dim dt As New DataTable
            cnn.ConnectionString = "..."
            cnn.Open()
            cmd.Connection = cnn
            cmd.CommandText = "SELECT cname FROM lessoncls"
            da.SelectCommand = cmd
            da.Fill(dt)
            dp1.DataSource = dt.DefaultView
            dp1.DataTextField = "cname"
            dp1.DataValueField = "cname"
            dp1.DataBind()
        End If
    End Sub
......
    Private Sub dp1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles dp1.SelectedIndexChanged
        Dim cnn As New OleDb.OleDbConnection
        Dim cmd As New OleDb.OleDbCommand
        Dim da As New OleDb.OleDbDataAdapter
        Dim dt As New DataTable
        cnn.ConnectionString = "...."
        cnn.Open()
        cmd.Connection = cnn
        cmd.CommandText = "SELECT lname FROM lesson WHERE (cname = '" & dp1.SelectedValue & "')"
        da.SelectCommand = cmd
        da.Fill(dt)
        Subject.DataSource = dt.DefaultView
        Subject.DataTextField = "lname"
        Subject.DataValueField = "lname"
        Subject.DataBind()
    End Sub
但是运行时没效果,就是dp1选了之后subject没改变。不知怎么回事。还有,我还想在一开始用户还没选择时使dropdownlist显示“请选择.."但是绑定数据之后就弄不出来。请各位高手指教。

解决方案 »

  1.   

    你要将第一个下拉框的autopostback属性设置为true,这样它才能响应事件.
      

  2.   

    第一个问题解决了,但我还想在一开始用户还没选择时使dropdownlist显示“请选择.."但是绑定数据之后就弄不出来。
      

  3.   

    dp1.DataBind()
    ----------------
    在这一句后面加:
    dp1.Items.Insert(0,new ListItem("请选择..",""));
      

  4.   

    dp1.DataBind()
    ----------------
    在这一句后面加:
    dp1.Items.Insert(0,new ListItem("请选择..",""));-------------------
    支持。你也可以在你读出数据就加上这个!
      

  5.   

    DropDownList.Items.Insert(0,new ListItem("data",""));0表示添加项的位置,data表示添加项的具体内容