are you binding your dropdownlist inif (!IsPostBack)
{}>>>总是调用Page_Load,如何停止调用它?that is how ASP.NET works, no way to stop it, move the code outside Page_Load

解决方案 »

  1.   


    if(!IsPostBack)
    {
    只想第一次调用的放在这
    }
    第一次改变选项能够出发onSelectedIndexChanged事件,但是以后再改变选项就没有反映了!
    是不是因为你的dropdownlist绑定事件是写在Page_Load()里面?
      

  2.   

    AutoPostBack="false" 就不会触发Page_Load了。
    另外不要用
    if(!IsPostBack)
    {
    }
      

  3.   

    还是没有解决我的问题!
    第一次改变选项能够触发onSelectedIndexChanged,但以后就不成了!调用完Page_Load就不再调用onSelectedIndexChangeddropdownlist不是在PageLoad中绑定的!
      

  4.   

    建议在asp.net中直接调用dropdownlist的onSelectedIndexChanged事件,然后将c#中的private void 改为 public void 试一试。
      

  5.   

    在page_load中调用你的函数就行,,
      

  6.   

    看看WROX的asp.net入门经典就第七章就知道原因了。你的具体原因,楼上的说的都有道理,具体问题要看你的绑定代码,及涉及到的其他代码。
    这也是我刚遇到的问题,放到init中就可以了(不建议)。
      

  7.   

    贴主:
    你要明白一个道理,就是asp:dropdownlist控件的AutoPostBack="true"属性确实可以触发表单提交。但是在后台代码里面的private void Page_Load()是只要发生表单提交就会执行里面的代码。
    而AutoPostBack属性设置为true后确实可以触发nSelectedIndexChanged事件的发生,但是这个事件的触发是在执行完Page_Load后才执行。
    所以Asp.Net提供了IsPostBack属性来确认这个动作是客户第一次执行还是表单提交回发.
    所以我们通常用这个属性来控制哪些代码每次提交都要执行,还是仅仅第一次请求时执行一个例子
    private void Page_Load(object sender,EventArgs e)
    {
        // 每次提交都执行的代码
        if(!Page.IsPostBack)
        }
            // 页面第一次请求时候执行代码
        }
        if(Page.IsPostBack)
        {
            // 第一次请求不执行,表单提交执行代码
        }
    }还有就是你问题提的不清楚,大家都是靠猜测,你应该把你出错代码或者希望代码执行的顺序说出来,应该有人可以帮助你的.