页面上有三个控件:
DropdownList   已绑定到数据源
Textbox        用于接受用户输入        
Button         点击之后将Textbox的text存入数据库(也就是DropdownList的数据源),
现在我的问题是:
在点击Button之后,DropdownList不能立即添加Item(重新绑定数据源),只能在页面关闭,再重新启动程序时才能显示出新加的Item!
1、我没有在Page_load事件中做IsPostback判断,做了判断也应该一样,是吧?点击按钮之后肯定是回发了,我觉得。
2、是不是数据绑定只在页面第一次加载时进行,之后无论如何都不会进行了呢?我测试的结果是这样的。如果有不同意见,回帖讨论!
3、为了解决这个问题,我在Button点击事件里再加一句
      this.DropDownList1.Items.Add(this.TextBox1.Text);
  
结果出现了一个新问题,我在执行以上语句时必须得判断数据库操作是否成功。
但我用的是存储过程,ExecuteNonQuery之后无论成功与否,返回值都是-1,无法进行有效判断。终于翘翘了,怎么办?感觉网上类似功能的实现很多的,他们是用什么解决的?先JavaScript,再数据库操作?

解决方案 »

  1.   

    首先,dropdownlist的autopostback="true"
    其次,在button事件末尾重新绑定下dropdownlist的数据
      

  2.   

     如果你的button点击后就操作数据库将新的值插入数据库的话,那么在执行完这个操作后,重新给dropdownlist赋下数据源,并绑定一次就可以了. 代码类似于(以下是伪代码,大概是这个样子去操作):   Page_Load()
       {
          if(!IsPostBack)
          {
            BindDropDownList()
          }
       }
       Button_click()
       {
           //新的Item插入DB      //BindDropDownList();
       }
       BindDropDownList()
       {
          ddl1.DataSource=你从db来的数据.
          ddl1.DataBind();
       }
      

  3.   

    在点击Button之后重新绑定一下DropDownList的数据