框架中使用AutoPostBack的下拉框,导致框架页面消失,之后无论任何填充操作,该框架页面始终不显示...

本文描述了一个在使用AutoPostBack特性的下拉框时遇到的框架页面消失的问题,并提供了一种临时解决方案,即通过JavaScript禁用提交后的下拉框选择。
最近做的web项目(VS2003),使用了一直口碑不好的框架,凑巧的是还在框架中使用AutoPostBack的下拉框,导致框架页面消失,之后无论任何填充操作,该框架页面始终不显示......

出现这种现象是很偶然的,但不论我怎么想办法,它就是不出现,在过了好多天之后,在我尝试了一个下午后它终于出现了,具体这种现象怎么让它重现呢, 其实很简单,只要在该框架中触发任意事件或在其他框架中重新填充此框架,然后迅速的点击展开设置成AutoPostBack的下拉框,但并不点击选项,这样问题就会出现了,画面在一阵刷新过后消失了,白白一片,而且不论我怎么在别的框架再重新填充此框架,页面就是不出来了。

测试一下后台代码正常执行完成,IIS也正常发送服务端生成的页面,客户端也正常接收HTTP数据包了,这就奇怪了,网上搜了半天,也只有找到相同的案例,没找到问题所在及解决方案。(找到这方面资料的朋友给我发一份吧,在此谢谢了,估计要能找到应该是英文资料了。)

没办法,项目还是要解决bug,只好先做治标不治本的控制了。原理是通过javascript控制在提交后页面中的下拉框灰显,也就是不让用户再选择下拉框了。
使用如下3个js的function
这是控制本页面内的下拉框,要在所有事件上加上这段js
//Set DropDownList Time Out Disabled
function SetTimeOutDisable()
{
    setTimeout(
"DisableDropDown()",20);
}

//Disable DropDownList
function DisableDropDown()
{
    
var selects = document.getElementsByTagName('select');
    
for(var i=0;i<selects.length;i++
    {
        selects[i].disabled
=true;
    }
}
这是在其他页面控制本页面内下拉框,在所有填充框架的操作前都要加上
//Disable Other Page DropDownList
function DisableOtherDropDown()
{
    
var selects = this.parent.frames[1].document.getElementsByTagName('select');
    
for(var i=0;i<selects.length;i++
    {
        selects[i].disabled
=true;
    }
}
具体看框架结构及层次要适当更改。

知道怎么从根本解决这个问题的朋友一定要告诉我啊

转载于:https://www.cnblogs.com/jason_lb/archive/2007/02/08/644383.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值