我刚接触asp.net 今天在弄到关于listbox控件时突然发现,我在listbox的selctIndexChanged事件中调用一个方法,但是奇怪的是,当我点击listbox中的选项时事件没有作用,反倒是点击其他按钮的时候它起作用了!很是郁闷……然后输出它的选项的索引都为-1,我又发现,为什么是-1,因为我点击了按钮后,页面又重新加载了,所以索引永远都是-1,请教各位大虾,如何解决这个问题?
也不仅仅是这个问题,在好多的控件中它的一些事件好像有的也是这样,但有的不是,请问为什么会这样?谢谢各位大虾了……

解决方案 »

  1.   

    因为你在selectindexchanged里调用方法的时候它又重新加载了listbox
    你把绑定Listbox的方法放在
    if (!IsPostBack)
    {
      //绑定方法
    }
    应该就可以了。
      

  2.   

    if (!IsPostBack) 

      //绑定方法 
    } 接触asp.net初容易范的错误.
    加上上面的方法.在你的页面加载事件里,把你listbox初始化绑定数据的代码放在此方法里.
      

  3.   

    你说的第二个问题,就是楼上两位的解决办法,就可以了
    因为你没这样写,会重新绑定listbox控件,所以你选的状态就没了第一个问题是因为你没把listbox的AutoPostBack设置为True,所以不会激发后台的indexchanged事件
      

  4.   

    这样就可以了
    protected void Page_Load(object sender, EventArgs e)
    {
           if (!IsPostBack) 
           { 
             //要绑定的方法 
            } }
      

  5.   

    页面肯定会重载(因为与服务器交互了)
    至于里面的绑定方法不执行了.是因为写在此方法里的只会在页面第一次加载时执行.之后就不会执行了.
    至于是否还要调用绑定的方法,可根据你的需求,IsPostBack里的代码写成方法,方便之外调用.