例如我的DROPDOWNLIST的ITEMS里有三项,text和VALUE都为老人,成人,小童,当我插入资料时我选择"成人",那么做一个修改页面时如何根据我插入的资料把"成人"设为SELECTED呢,我是用VB写的,谢谢各位高手

解决方案 »

  1.   

    .Items.FindByText("成人").Selected=true
      

  2.   

    DROPDOWNLIST1.Items.FindByValue("成人").Selected=true;
      

  3.   

    yourdropdownlist.selecteditem=null;
    yourdropdownlist.items.findbytext("成人").selected=true
      

  4.   

    DROPDOWNLIST.Items.FindByValue("成人").Selected=true;
    当然,如果你不确定是否有“成人”的话,先判断看看有没有找到,还要判断一下本来是否已有选中项,如果有的话先取消选中项状态,不然会出错的。
      

  5.   


        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
    请问究竟哪里出错呢,系统报错:未将对象引用设置到对象的实例
      

  6.   

    <font size="7" color="#ff0066">我是这个问题的提问者,我想问究竟哪里出错呢,系统报错:未将对象引用设置到对象的实例</font>
    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
      

  7.   

    1   DropDownList2.Items.FindByValue(dr.Item(2)).Selected = True
    这是按值找到选项,你要保证你的dr.Item(2)是值而不是text(即显示在页面中的字样),否则用:
    DropDownList2.Items.FindByText(dr.Item(2)).Selected = True
    2 还有:dr.Item()是从0开始的即dr.Item(0)是第一项,dr.Item(1)第二项
      

  8.   

    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
    这儿有点问题: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
      

  9.   

    呵呵,来晚了只有写另一种方法了!在帮定的时候,设置selectedfor(int i=0;i<DropDownList1.Items.Count;i++)
    {
       if(DropDownList1.Items[i].Value == //你想要的值)
       {
    cboCategroy.SelectedIndex = i;
    break;
       }
    }
      

  10.   

    or
    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
      

  11.   

    Me.DropDownList5.SelectedValue = "老人"
      

  12.   

    '//如果设置成人 
    Me.DropDownList5.selectedindex = 
    Me.DropDownList5.Items.IndexOf(Me.DropDownList5.Items.FindByValue("成人"))