例如我的DROPDOWNLIST的ITEMS里有三项,text和VALUE都为老人,成人,小童,当我插入资料时我选择"成人",那么做一个修改页面时如何根据我插入的资料把"成人"设为SELECTED呢,我是用VB写的,谢谢各位高手
解决方案 »
- 本地安装控件,才能登录系统...有谁做过?
- 请教一个类设计的问题(只有70分了,不好意思)
- StringBuilder怎么字符串前面添加
- 请教vs2003做的asp.net项目,是否可以正常迁移到vs2005里啊?
- 不能增加Datagrid的模板列了,怪了
- ASP 问题,在线等,。。。。。!·#¥!%¥#……%……¥·#¥·!%¥…………
- 怎么可以得到一个时间和现在的时间差呢?
- 怎样在C#中获得object对象的实际表示对象?
- 昨天看清华译的ASP。NET入门经典,有一处不太明白。
- 我的 程序在调用FORM.ACTION的用法不正确。能告诉我怎样用它 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- panel面版的问题和response在线等候!!
- web控件里textbox的输入法怎么强制关闭
yourdropdownlist.items.findbytext("成人").selected=true
当然,如果你不确定是否有“成人”的话,先判断看看有没有找到,还要判断一下本来是否已有选中项,如果有的话先取消选中项状态,不然会出错的。
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Not IsPostBack Then
Dim cnn = New SqlConnection(DBConn)
Dim cmd As New SqlCommand("select * from travel where lineid='" & Request.QueryString("journeyid") & "'")
Dim dr As SqlDataReader
cnn.Open()
cmd.Connection = cnn
dr = cmd.ExecuteReader
dr.Read()
TextBox1.Text = dr.Item(1)
TextBox2.Text = dr.Item(3)
TextBox3.Text = dr.Item(4)
TextBox4.Text = dr.Item(5)
TextBox5.Text = dr.Item(6)
TextBox6.Text = dr.Item(7)
TextBox7.Text = dr.Item(8)
DropDownList2.Items.FindByValue(dr.Item(2)).Selected = True
dr.Close()
cnn.close()
End If
End Sub
请问究竟哪里出错呢,系统报错:未将对象引用设置到对象的实例
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Not IsPostBack Then
Dim cnn = New SqlConnection(DBConn)
Dim cmd As New SqlCommand("select * from travel where lineid='" & Request.QueryString("journeyid") & "'")
Dim dr As SqlDataReader
cnn.Open()
cmd.Connection = cnn
dr = cmd.ExecuteReader
dr.Read()
TextBox1.Text = dr.Item(1)
TextBox2.Text = dr.Item(3)
TextBox3.Text = dr.Item(4)
TextBox4.Text = dr.Item(5)
TextBox5.Text = dr.Item(6)
TextBox6.Text = dr.Item(7)
TextBox7.Text = dr.Item(8)
DropDownList2.Items.FindByValue(dr.Item(2)).Selected = True
dr.Close()
cnn.close()
End If
End Sub
这是按值找到选项,你要保证你的dr.Item(2)是值而不是text(即显示在页面中的字样),否则用:
DropDownList2.Items.FindByText(dr.Item(2)).Selected = True
2 还有:dr.Item()是从0开始的即dr.Item(0)是第一项,dr.Item(1)第二项
Dim cnn = New SqlConnection(DBConn)
Dim cmd As New SqlCommand("select * from travel where lineid='" & Request.QueryString("journeyid") & "'")
Dim dr As SqlDataReader
cnn.Open()
cmd.Connection = cnn
dr = cmd.ExecuteReader
dr.Read()
TextBox1.Text = dr.Item(1)
TextBox2.Text = dr.Item(3)
TextBox3.Text = dr.Item(4)
TextBox4.Text = dr.Item(5)
TextBox5.Text = dr.Item(6)
TextBox6.Text = dr.Item(7)
TextBox7.Text = dr.Item(8)
DropDownList2.Items.FindByValue(dr.Item(2)).Selected = True
dr.Close()
cnn.close()
End If
这儿有点问题:If Not IsPostBack为真时是第一次加载页面,而你在首次加载就取textbox值,这肯定都是空值!
改为:
If Not IsPostBack Then
Else
Dim cnn = New SqlConnection(DBConn)
Dim cmd As New SqlCommand("select * from travel where lineid='" & Request.QueryString("journeyid") & "'")
Dim dr As SqlDataReader
cnn.Open()
cmd.Connection = cnn
dr = cmd.ExecuteReader
dr.Read()
TextBox1.Text = dr.Item(1)
TextBox2.Text = dr.Item(3)
TextBox3.Text = dr.Item(4)
TextBox4.Text = dr.Item(5)
TextBox5.Text = dr.Item(6)
TextBox6.Text = dr.Item(7)
TextBox7.Text = dr.Item(8)
DropDownList2.Items.FindByValue(dr.Item(2)).Selected = True
dr.Close()
cnn.close()
End If
{
if(DropDownList1.Items[i].Value == //你想要的值)
{
cboCategroy.SelectedIndex = i;
break;
}
}
If IsPostBack Then
Dim cnn = New SqlConnection(DBConn)
Dim cmd As New SqlCommand("select * from travel where lineid='" & Request.QueryString("journeyid") & "'")
Dim dr As SqlDataReader
cnn.Open()
cmd.Connection = cnn
dr = cmd.ExecuteReader
dr.Read()
TextBox1.Text = dr.Item(1)
TextBox2.Text = dr.Item(3)
TextBox3.Text = dr.Item(4)
TextBox4.Text = dr.Item(5)
TextBox5.Text = dr.Item(6)
TextBox6.Text = dr.Item(7)
TextBox7.Text = dr.Item(8)
DropDownList2.Items.FindByValue(dr.Item(2)).Selected = True
dr.Close()
cnn.close()
End If
Me.DropDownList5.selectedindex =
Me.DropDownList5.Items.IndexOf(Me.DropDownList5.Items.FindByValue("成人"))