我是这么绑定的(conn是一条连接数据库的语句):
        Dim access2 = "select * from gclass"
        Dim ADA1 = New SqlClient.SqlDataAdapter(access2, conn)
        Dim ADS1 As New DataSet
        ADA1.Fill(ADS1)
        DropDownList1.DataSource = ADS1
        DropDownList1.DataTextField = "gclassname"
        DropDownList1.DataValueField = "gclassid"
        DropDownList1.DataBind()绑定后,我利用
        Dim sgclassid As String
        sgclassid = DropDownList1.SelectedValue
        Response.Redirect("show.aspx?gid=" + sgclassid + "")
可是在另一个页面,我无论怎么选择DropDownList1中的值,出来的都是6,而编号为6的恰好是数据库中的第一项。

解决方案 »

  1.   

    在PAGE_LOAD事件里的吗?代码有没有放在
    IF(ISPOSTBACK==FALSE)
    {
    //代码
    }
      

  2.   

    数据绑定要写在 if(! Page.IsPostBack){} 内
    绑定的 DataValueField 不能有重复值
      

  3.   

    在PAGE_LOAD事件里的吗?代码有没有放在
    IF(ISPOSTBACK==FALSE)
    {
    //代码
    }
      

  4.   

    IF(ISPOSTBACK==FALSE) then
            Dim access2 = "select * from gclass"
            Dim ADA1 = New SqlClient.SqlDataAdapter(access2, conn)
            Dim ADS1 As New DataSet
            ADA1.Fill(ADS1)
            DropDownList1.DataSource = ADS1
            DropDownList1.DataTextField = "gclassname"
            DropDownList1.DataValueField = "gclassid"
            DropDownList1.DataBind()
            '以上是绑定数据
            '以下是绑定默认值,也就存入数据库是什么,页面上就显示什么
            dim ID as string
            ID=5'假如是5,根据需要从数据库取值后赋给它
            DropDownList1.Items.FindByValue(ID).Selected=true
    end if然后
    Dim sgclassid As String
            sgclassid = DropDownList1.SelectedValue
            Response.Redirect("show.aspx?gid=" & sgclassid)
    就ok了
    ^_^,怎么看你c#和vb在混用呢,连接符c#中用+,vb中用&
      

  5.   

    sgclassid = DropDownList1.SelectedValueVB这样就可以吗
    我还以为要 sgclassid = DropDownList1.SelectedValue.Text 这样写呢.哈哈.
    楼主那样取得到值吗.我怀疑.我用C#是这样的.
    sgclassid = DropDownList1.SelectedItem.Text
      

  6.   

    sgclassid = DropDownList1.SelectedItem.Text
    变量      = 下拉列表.查询集合.文本(如果是True  的话会把Text文本内容传过去.)
      

  7.   

    If(Not IsPostBack) Then
            Dim access2 = "select * from gclass"
            Dim ADA1 = New SqlClient.SqlDataAdapter(access2, conn)
            Dim ADS1 As New DataSet
            ADA1.Fill(ADS1)
            DropDownList1.DataSource = ADS1
            DropDownList1.DataTextField = "gclassname"
            DropDownList1.DataValueField = "gclassid"
            DropDownList1.DataBind()
    End If
      

  8.   

    我那样sgclassid = DropDownList1.SelectedValue写取得到值呀,用+号也好用的,唉……我只是一只菜鸟,就连那上面的语句我都是在CSDN上看了别人的回帖后,拼拼凑凑写上去的。