在Web窗体上有一个按钮,ID = BtnRndColor
在其单击事件中:Dim s As New Random
BtnRndColor.ForeColor = Color.FromArgb(s.Next(256), s.Next(256), s.Next(256))每单击一次,该按钮的文字颜色就改变一次,但浏览器上的 后退 按钮也可用了, 按了十次按钮,就可以后退十次!怎样才能避免这种情况呢?(我只想改变颜色,不想产生其它结果)

解决方案 »

  1.   

    用客户端代码实现
    javascript
      

  2.   

    支持三楼的
    if(!Page.IsPostBack)
      

  3.   

    js 或 if(!Page.IsPostBack)
      

  4.   

    按照樓主的要求:每单击一次,该按钮的文字颜色就改变一次,但浏览器上的 后退 按钮也可用了, 按了十次按钮,就可以后退十次!怎样才能避免这种情况呢?(我只想改变颜色,不想产生其它结果)
    if(!Page.IsPostBack)
    在這裏不能用了吧?(就算能用也不用了,呵呵:))
    建議這樣簡單的功能就用javascript來完成..
      

  5.   

    服务器端控件可以保存状态,在你提交页面后会进行缓存;html控件不用提交页面,但是页面被其他事件提交的时候,状态会丢失,你需要用服务器端控件来保存这些丢失的参数。
      

  6.   

    不会JS,做起Web程序就是吃亏啊,即使是用Asp。net
      

  7.   

    三楼正解
    if(!Page.IsPostBack)
      

  8.   

    同意上面的 
    If(!page.IsPostBack)
      

  9.   

    asp.net 2.0不知道可不可以实现
      

  10.   

    private void Page_Load(object sender, System.EventArgs e)
    {
    if(!Page.IsPostBack)
              {
    //页面第一次加载执行的操作
               }
    else
             {
                      //页面加载一次以上执行的操作
              }
            //页面每次家载执行的操作
    }
      

  11.   

    用page.ispostback这好,不到万不得已尽量少用JS!~~~~~~~~~~~~~~~~~~~~~~
      

  12.   

    不要用服务器端事件,禁止该按钮PostBack,然后用js来进行你需要的操作。需要Random的话,查查MSDN里面Jscript的Math.random()和Math.Round(),Jscript里面的Math.random()出来的是0~1的小数,而Math.Round()用于取整,例如Math.Round(Math.Random()*256)得出的就是0~255了。
      

  13.   

    用 Html 控件工具箱里的按钮就不会自动 PostBack 了,可以在按钮的 onclick 里写 JS 来实现你要的功能。