各位,我在页面上使用了一个DropDownList,其各项是动态加入的,代码如下:        DataController dataControl = new DataController();
        SqlConnection connection = dataControl.getConnection();
        string sql = "select * from NewsClassInfo";
        SqlDataAdapter dataAdapter = new SqlDataAdapter(sql, connection);        DataSet dataSet = new DataSet();
        dataAdapter.Fill(dataSet, "newsInfo");
        DataTable dataTable = dataSet.Tables["newsInfo"];        foreach (DataRow dataRow in dataTable.Rows)
        {
            kindDropDownList.Items.Add(new ListItem(dataRow[1].ToString(), dataRow[0].ToString()));        }但是不知道为什么,当改变这个DropDownList的值时采用kindDropDownList.SelectedItem.Value 不能获得正确的值,永远都是第一条的值,为什么?

解决方案 »

  1.   

    代码贴全点,这个看了有点模糊,要么就是page_load下没加if(!ispostback){},要么就是你的循环不正确
      

  2.   

    kindDropDownList.DataSource=dataSet;
    kindDropDownList.DataTextField = "...";
    kindDropDownList.DataValueField = "...";
    kindDropDownList.DataBind();你用这样的方式绑定看看
      

  3.   

    if(!IsPostBack)
    {
    DataController dataControl = new DataController();
            SqlConnection connection = dataControl.getConnection();
            string sql = "select * from NewsClassInfo";
            SqlDataAdapter dataAdapter = new SqlDataAdapter(sql, connection);        DataSet dataSet = new DataSet();
            dataAdapter.Fill(dataSet, "newsInfo");
            DataTable dataTable = dataSet.Tables["newsInfo"];        foreach (DataRow dataRow in dataTable.Rows)
            {
                kindDropDownList.Items.Add(new ListItem(dataRow[1].ToString(), dataRow[0].ToString()));        }
    }
      

  4.   

    另外这段代码放在if(!ispostback){}中
      

  5.   

    你如何改变这个DropDownList的值?不会是用javascript去设置value吧?如果你采用比较偏门的非asp.net控件方法,尽量先说出来。
      

  6.   

    多谢各位,确实是if(!IsPostBack)的问题,只是我不太熟悉,能不能说明一下这句话有什么用呢?为什么加上这个就可以了呢?谢谢了
      

  7.   

    IsPostBack 判断页面是否回发
    比如按下一个服务器按钮后,页面就进行了一次回发如果在page_load中不加if(!IsPostBack)则这个页面程序加载时你的dropdowlist都会重新加载一次,而不保留你选过的dropdownlist
      

  8.   

    多谢sprc_lcl(cool一生)了,马上结贴
      

  9.   

    在页面初始化时加上  if(!Page.IsPostBack)
                        {}