现在遇到一个很怪异的问题,请各位帮帮忙。我们的系统采用.net1.1开发web应用程序,服务器采用win2003。客户端的操作系统假如是win2000+sp3的时候,第一次访问画面的时候,Page_PreRender事件能够正确执行,当点击本画面的某个button的时候,Page_PreRender却没有执行。就一个画面有这种问题客户端的操作系统假如是win2000+sp4,上面的问题没有发生。有没有人遇到过类似的问题阿,有解决办法吗?

解决方案 »

  1.   

    如果事件没有丢失而发生上述问题,那么,可以列入疑难杂症。
    你可如此解决。
    把你的页面aspx及后台aspx.cs页面里面,起作用的代码拷贝到另一个新建立的页面中去,重新建立事件(其实最好是重新画aspx页面的表格),编译后运行看看有没有问题。
    如果还有问题,请使用替换法解决。把你页面中的代码功能逐一减少,看少到哪一个步骤问题会消失。
      

  2.   

    asp.net的生命周期跟客户端的环境还有关系吗?
      

  3.   

    asp页面生命周期是不会变的,检查一下你的代码
      

  4.   

    在sp4下能够正常执行,在sp3下出现问题,因此有点想不通。希望大家能够多给我提供解决的思路
      

  5.   

    奇怪的问题..跟踪调试一下吧..在你的PreRender事件中写入Trace.Write("This is PreRender");
    然后在调用的页面开启trace=true;调试页面..看看是否有输出This is PreRender
      

  6.   

    是和客户段没关系 
    不过写程序有时会留下些冗余代码 
    (比如重复的添加删除web窗体控件或者更改方法属性的名称
    可能会留下些初始化的东西 编程工具也不是万能的)
    或者还有别的情况
    (曾经我的情况是一个按钮事件怎么都不执行
    我把代码cut到记事本然后原封不动的再贴回去就行了)
    这些情况可能对不同客户端的支持产生阻碍
      

  7.   

    至于是否因为sp3,sp4的因素..这个也不能确定..你可以再换一台机子试下..多换几台..看看结果..慢慢排除一些因素..
      

  8.   

    原因查出来了,由于aspx中有下面的代码,在sp3中不点击关闭按钮也能够触发Cancel的click,导致页面直接发生了迁移。为什么在sp4下,只有点击窗口的关闭按钮才能触发按钮的click事件呢?有高人能够解答一下吗?
       window.onbeforeunload = function()
       {
    document.all.Cancel.click();
       }