我是这么绑定的(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的恰好是数据库中的第一项。
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的恰好是数据库中的第一项。
IF(ISPOSTBACK==FALSE)
{
//代码
}
绑定的 DataValueField 不能有重复值
IF(ISPOSTBACK==FALSE)
{
//代码
}
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中用&
我还以为要 sgclassid = DropDownList1.SelectedValue.Text 这样写呢.哈哈.
楼主那样取得到值吗.我怀疑.我用C#是这样的.
sgclassid = DropDownList1.SelectedItem.Text
变量 = 下拉列表.查询集合.文本(如果是True 的话会把Text文本内容传过去.)
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