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

最近做的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;
    }
}
具体看框架结构及层次要适当更改。

知道怎么从根本解决这个问题的朋友一定要告诉我啊
posted @ 2007-02-08 10:19  jason_lb  阅读(984)  评论(1编辑  收藏  举报