Page_Load执行两次的解决方法

原创 2007年09月13日 09:38:00

项目中有个列表界面,列表界面中有个一个AutoPostBack属性设置为True的下拉框,这个下拉框用于对表格状态进行筛选,但是在执行的情况很奇怪,每次选择了筛选器以后发现页面还是显示初始状态,即第一次载入页面的内容。通过断点跟踪发现原因是Page_Load执行过两次,Page_Load中的代码结构如下所示:

Page_Load(....)
...{
     
if (!Page.IsPostBack)
     
...{
             
//首次载入页面的执行代码;
             
//code here;
     }

}

通过选择筛选器触发页面回传,第一次执行Page_Load和预想情况一样,由于Page.IsPostBack属性为true,所以不执行页面的初始代码。然后页面执行DropDownList_SelectIndexChange事件响应代码。这个也是正常的。但是奇怪的事情发生了,在执行了DropDownList_SelectIndexChange事件响应代码后,页面再次执行了Page_Load,而且这一次Page.IsPostBack属性为false,即页面是首次载入而不是回传页面。然后页面执行首次载入的初始代码从而造成了无论怎么选择筛选器的值,页面总是显示初始值的原因。

首先想到的是代码中是不是存在跳转到自身的页面的代码,比如:当前页面是a.aspx, 但在代码中存在Response.Redirect("a.aspx")语句,或者在客户端存在window.location.href = 'a.aspx'这种语句,从而造成页面重新载入,但是通过检查代码没有发现。在网络上搜索了一下,发现一篇文章中说可能是图片控件<img/>中的图片地址引(src=...)用了无效地址造成了页面的重新载入。这个给我们提供了一个思路,也就是html或者服务器端控件的属性被赋非法值,那么可能造成也页面的重新早入,通过一点点的去掉html代码,然后进行断点跟踪,发现在table中间的background属性被我赋了一个颜色值,即"#ECECEC"这样的值。而background的合法值应该是一个地址,我的原意是给table设置一个背景颜色,所以这里的属性是bgcolor。就是由于这个原因造成了页面的重新载入,修改后问题解决。

所以在出现页面非正常的多次载入时,可以检查一下自己的HTML源代码,看看时不是有哪个标签的属性被赋了非法值了

layer的弹出层的简单的例子

如果不了级的基本的清楚官网查看api网址为 http://layer.layui.com/ 我用的是iframe /!* 如果是iframe层 */ layer.open({ typ...

iframe中弹出框后添加覆盖整个页面的遮罩层并且不覆盖子页面中的弹出框

iframe中弹出框后添加覆盖整个页面的遮罩层并且不覆盖子页面中的弹出框

android:windowSoftInputMode属性详解以及editText监听键盘回车会执行两次的解决方法

android:windowSoftInputMode各值的含义: stateUnspecified:软键盘的状态并没有指定,系统将选择一个合适的状态或依赖于主题的设置 stateUnchanged:...

spring定时任务执行两次的原因与解决方法

最近遇到一个比较棘手的问题,由于场景需要,每天晚上11点执行一个定时任务,我用的是spring的定时器,具体的定时任务相关配置和代码如下,没啥毛病。。。 直接上代码: 1、项目下的配置文件serv...

关于SearchView中onQueryTextSubmit方法执行两次的解决方法

我们在使用SearchView的时候,总会用到监控文本框变化的事件,代码如下:         //文本框输入事件 searchView.setOnQueryTextListener...

移植fatfs上电复位前两次不能正确打开文件解决方法

最近移植了fatfs到stm32,昨晚写进了第一个txt文件,然后就睡觉了,以为移植差不多了,今晚试了一下,发现不好用了, res = f_open(&file, "text.txt", FA_OPE...

jquery easyui datagrid请求两次或多次的问题解决方法

jquery easyui datagrid请求两次或多次的问题解决方法

mui日期选择器弹出两次的解决方法

今天在用mui做日期选择的时候,发现日期弹出窗口弹出两次,代码并无问题,后来测试发现js被调用了两次,DtPicker代码如下:/*日期选择*/ (function($) { ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Page_Load执行两次的解决方法
举报原因:
原因补充:

(最多只允许输入30个字)