if(!Page.IsPostBack)
{
  ....
  this.DropDownList1.DataSource=this.sqlCommand1.ExecuteReader();
   this.DropDownList1.DataBind();   
}怎么在postback后又执行了一遍 Databind啊?哎,折腾了一天了  这样的话就无法取道dropdownlist改变的值了,因为每次postback后又重新databind,值又还原了?
太郁闷了

解决方案 »

  1.   

    我才开机运行程序的啊,就发生这种问题只要一postback,值就还原,我真想揍bill了
      

  2.   

    设置dropdownlist的autopostback=“true”更是postback就再重新databind了
      

  3.   

    不会是要重装.net吧???????????????
      

  4.   

    可不可以比如说:
    把....
      this.DropDownList1.DataSource=this.sqlCommand1.ExecuteReader();
       this.DropDownList1.DataBind();   
    放在DropDownListBind()中。然后在
    if(!Page.IsPostBack)
    {
       调用DropDownListBind()
    }接着DropDownList1.IsPostBack=true
      

  5.   

    “值又还原了”就是又从数据库里databind出来原来的值啊,我的第一项是个空格字符我一选其他的选项postback后,或者在button_click中取dropdownlist.selectitem.text的时候就只能取道空格符号,也就是第一项
      

  6.   

    if(!Page.IsPostBack)
    {
      ....
      this.DropDownList1.DataSource=this.sqlCommand1.ExecuteReader();
       this.DropDownList1.DataBind();   //这里的代码在postback时是不会执行的
    }如果发生上面的情况看看是不是DropDownList1所有项的vale值是一样的,DropDownList只将vale值保存在viewstate中,并以此来决定postback后的选项
      

  7.   

    哦,是呢,谢谢你zpisgod,我也刚刚发现终于找到原因了,哈哈谢谢各位
      

  8.   

    那你取DropDownList1.SelectedIndex看看是什么呢?