gradeName.DataSource = getConfigDs("gradename");//返回一个dataset对象
gradeName.DataTextField = "gradename";
gradeName.DataValueField= "gradename";
gradeName.DataBind();
for(int i=0;i< gradeName.Items.Count;i++)
{
  if(gradeName.Items[i].Text == sdr["gradename"].ToString())
    {
      gradeName.SelectedIndex = i;//这里设置了为什么没的用,页面还是显示第一个
      hospTel.Text += gradeName.SelectedIndex + gradeName.Items[i].Text + sdr["gradename"].ToString();//修改以后的selecetedindex的值就已经改了,为什么页面就是显示第一个
     break;
    }
}

解决方案 »

  1.   

    //In your page load
    if( ! this.IsPostback )
    {
       //bind data here
    }
      

  2.   

    我给的是局部代码,IsPostBack已经+了的
      

  3.   

    if (IsPostBack)
    {
      Controls.Clear();
      lbl_.Text = Request.QueryString["id"] + "你可以做别的";
      updateForm();
      Controls.Add(lbl_);
    }
    else
      editForm();
    我+了的,上面的代码段就是editForm()里面的
      

  4.   

    gradeName.DataBind();修改后.再来一次
      

  5.   

    为什么要加这句
    Controls.Clear();
      

  6.   

    你把 editForm();放首次加载里看看呢?你上面的是不是首次就加载啊
      

  7.   

    gradeName.DataBind();在+一次也是一样的
    页面回传了以后其他的控件都还在,所以用了Controls.Clear();
    清除一下,editForm();本来就是首次加载的