这样好像不行
按照下面这个次序
DropDownList.DataSource=一个dataview; DropDownList.DataTextField="字段名";
DropDownList.DataBind();
DropDownList.Items.Add("请选择"); DropDownList.SelectedIndex=DropDownList.Items.Count-1;

解决方案 »

  1.   

    Dim objCom As SqlClient.SqlCommand
            Dim objDR As SqlClient.SqlDataReader
            Dim strCon As String
            Dim sSQL As String
            Dim sStr As String
            dplCity.Items.Clear()
            strCon = Context.GetConfig("appSettings")("dsn")
            sSQL = "select * from dicRegion_Citys A where A.AreaName='" & dplRegion_Areas.SelectedItem.Text & "'"
            objCom = New SqlClient.SqlCommand(sSQL, New SqlClient.SqlConnection(strCon))
            objCom.Connection.Open()
            objDR = objCom.ExecuteReader(CommandBehavior.CloseConnection)
            dplCity.Items.Add("请选择")
            Do While objDR.Read
                Dim dd As New System.Web.UI.WebControls.ListItem()
                dd.Text = objDR.Item("Name")
                dd.Value = objDR.Item("ID")
                dplCity.Items.Add(dd)
            Loop
      

  2.   

    你应该在pageload事件中绑定ddl的数据源if ispostback=false then 
     '绑定ddl的数据源end if
      

  3.   

    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            If IsPostBack = False Then
                Conn.Open()
                BindDdls()  '绑定下拉列表框
                Conn.Close()
            End If
    End Sub
    Sub BindDdls()  '绑定下拉列表框
            Dim strSQLSpecName As String = "select names,codes from rc_specname group by codes,names,codes order by codes"        Dim strSQLXueLi As String = "select names,codes from rc_xueli group by names,codes order by codes"
            Dim strSQLWorkArea As String = "select names,codes from rc_area group by names,codes order by codes"
            Dim strSQLHZ As String = "select names,codes from rc_area group by names,codes order by codes"        AddItemsToDdls(ddlSpecName, strSQLSpecName, "请选择专业")
            AddItemsToDdls(ddlHukou, strSQLHZ, "请选择户籍")
            AddItemsToDdls(ddlMqArea, strSQLHZ, "请选择目前居住地")
            AddItemsToDdls(ddlWorkArea, strSQLHZ, "请选择工作地区")End SubSub AddItemsToDdls(ByVal objDdl As DropDownList, ByVal strSQL As String, ByVal strTop As String)
            objDdl.Items.Add(New ListItem(strTop, strTop)) '把第0项设置为“XXXXXXXXXX”,        Dim Cmd As New SqlCommand(strSQL, Conn)
            Dim DReader As SqlDataReader = Cmd.ExecuteReader
            While DReader.Read
                objDdl.Items.Add(New ListItem(DReader("names"), DReader("codes")))
            End While
            DReader.Close()
            Cmd.Dispose()    End Sub
      

  4.   

    上面的方法不能设置Value值,
    下面有个方法
    介绍一下参数的用法,
    dlltoAll是DropDownList的名称
    dv是数据的DataView
    TextField:显示在DropDownList中的字段
    ValueField:DropDownList中的Value值的字段
    otherField:按照你的要求可以输入“请选择”
    otherValue:你要设置的“请选择的值”,建议为0
    public void DllBindWithOther(DropDownList dlltoAll,DataView dv,string TextField,string ValueField,string otherField,string otherValue)
    {ddltoAll.DataSource=dv;
    ddltoAll.DataTextField=TextField;
    ddltoAll.DataValueField=ValueField;
    ListItem ddltoAll=new ListItem();
    ddltoAll.Text=otherField;
    ddltoAll.Value=otherValue;
    ddltoAll.Items.Add(ddltoAll);
    ddltoAll.Items.FindByValue(otherValue).Selected=true;
    }