.net framework 1.0中的DORPDOWNLIST有bug,总是出现怪问题,换1.1试试。

解决方案 »

  1.   

    從代碼上看是正確的要不試試直接用js獲取
    DDL_DropDownList.options[DDL_DropDownList.selectedIndex].text
    DDL_DropDownList.options[DDL_DropDownList.selectedIndex].value
      

  2.   

    用JS可以实现,但是我想搞清楚为什么会出错,而且用JS的话,对整个项目来说,太麻烦睡觉之间UP一下,希望明天早上有可以解决的方法,呵呵,谢谢大家了
      

  3.   

    呵呵,我也遇到过,不知道为何,当时想可能同控件有关,反正我的代码没有错,反过头想,一个DropDownList中放一百多条数据是很不实用的,所以,我把它再分类,改为了几级的连动下拉框,这样用户就方便很多。。
      

  4.   

    我曾经遇到过此类问题,dropdownlist.item 里每一项的value互不相同
    如果相同会出错
      

  5.   

    你的第50和8的text 是否一样?to 楼上,可用分只有一个方法增加:今天来,第二天再来会加10分,第三天再来10分类推,如果今天来明天不来,就连10分都没有,好象是这样
      

  6.   

    拆开来吧
    细分
    分成多级
    一个DDL里面放这么多数据
    选择的时候要找半天呢。
    很累的
      

  7.   

    退而求其次…………
    你绑定ddl的代码是否被多次执行?比如放在page_load事件里面又没有判断ispostback或者ddl是否已经存在数据?我现在的ddl已经有50条记录,没有问题。见到这个帖子之后我又添加了100条,仍然没有问题
      

  8.   

    caosheng(草圣),你的回答是对的,给分
      

  9.   

    这就不对了,我用了两种方法分别测试了200个和1000个元素,照样正常呀
    下面是我的测试程序(vb.net),很容易看懂,请确定你的程序是否正确
    注意:1。你数据绑定 是否在 if(!(IsPostBack)){}内
          2。你的dropdownlist 是否 autopostback=true
    ①测试200个元素(dropdownlist直接添加元素的方法)
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            '在此处放置初始化页的用户代码
            If Not IsPostBack Then
                Dim i As Integer
                For i = 0 To 200
                    Dim item As New ListItem()
                    item.Text = i
                    item.Value = i
                    DropDownList1.Items.Add(item)
                Next
            End If
        End Sub    Private Sub DropDownList1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DropDownList1.SelectedIndexChanged
            TextBox1.Text = DropDownList1.SelectedItem.Text + "**" + DropDownList1.SelectedItem.Value
        End Sub②测试1000个元素(数据绑定方法)
        Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            '在此处放置初始化页的用户代码
            If Not IsPostBack Then
                Dim t As New DataTable()
                t.Columns.Add("Txt", GetType(String))
                t.Columns.Add("Val", GetType(Integer))
                Dim i As Integer
                For i = 0 To 1000
                    Dim r As DataRow = t.NewRow
                    r("Txt") = i.ToString
                    r("Val") = i
                    t.Rows.Add(r)
                Next
                DropDownList1.DataSource = t
                DropDownList1.DataTextField = "Txt"
                DropDownList1.DataValueField = "Val"
                DropDownList1.DataBind()        End If
        End Sub    Private Sub DropDownList1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DropDownList1.SelectedIndexChanged
            TextBox1.Text = DropDownList1.SelectedItem.Text + "**" + DropDownList1.SelectedItem.Value
        End Sub