日期:2014-05-17  浏览次数:20423 次

【新人求助】前台控件一点击就刷新整个页面,而且就像DropDownList的SelectedIndexChanged事件根本进不去,详情里面说~
初学asp.net,但是之前都有用winform开发的,发现很多问题,且听我一一道来:
  1、点击任何一个控件时,整个页面都会刷新,我想定义一个numcount = 1;然后再button1的点击事件中,让text1.Text = numcount.ToString(); numcount++;但是,发现问题了:每次都是1,不管点击button1几下text1显示的numcount都是1,代码如下:

    private int numcout = 1;
    protected void myBtn_Click(object sender, EventArgs e)
        {
         text1.Text = numcount.ToString();
         numcount++; 
        }

结果点击button1显示的总是1;

2、很多事件都根本无法进入,比如说下拉列表“DropDownList”的SelectedIndexChanged事件就进不去,我点击了dropDownList1控件的下拉项之后发现没有任何反应,于是打断点,发现断点根本就进不去!!!我想这也是因为每次一点控件就把页面刷新了的缘故吧,导致相当于dropDownList1控件没有选项改变,请问怎么办?

3、这个就更奇怪了啊,在2中已经说过了,点击dropDownList1控件之后不是没有任何反应吗?但是当我再点击button1的时候就有了反应???代码如下:

    private int numcout = 1;
    protected void myBtn_Click(object sender, EventArgs e)
        {
         text1.Text = numcount.ToString();
         numcount++; 
        }

     protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
        {
            Response.Write("<script language =     
                           JavaScript>alert('"+DropDownList1.SelectedItem.Text+"');</script>");
        }

当我点击了dropDownList1控件的下拉选项,让下拉选项改变时,发现根本没有任何事情发生,但是我再去点button1的时候,就会发现弹出了刚才dropDownList1控件下拉列表改变事件的内容。

请教为虾米?

最后,补充一个问题吧(这个大神不会可以不必作答)  if (!IsPostBack){“进不来这个事件”}这个一直进不到这个事件里面来,也就是说IsPostBack一直为True。但上面的请大神一定一定要帮我解答啊,拜托了!!!!

------解决方案--------------------
设置DropDownList的AutoPostBack="true"
------解决方案--------------------
DropDownList1_SelectedIndexChanged 的绑定事件在前台命名没问题?
是否关闭了AutoPostBack?

------解决方案--------------------
每次请求都会实例化当前页面的一个新实例,也就是说你每次点击Button的时候,Page的实例是不一样的,所以实例字段的值每次都是不同的。要实现你说的功能,可以把字段定义为static的。
------解决方案--------------------
引用:
非常感谢!!!能再追问一下那个button1的问题是什么原因啊?


button事件会引发  回发 相当于重新运行了一下后台cs文件
numcout?这个变量又会被重新初始化 所以为1
如果LZ不想让变量重新初始化 把变量标记为静态变量即可