小弟的程序是检查页面上的textbox的值,ok的话然后再下载文件。
检查是用javaScript写的,写在前台,取控件是这样写的
var obj;
obj = document.all("textbox1");
.......下载的程序写在后台,程序是
Response.Clear()
Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(Excel文件.Name))
Response.AddHeader("Content-Length", Excel文件.Length.ToString())
Response.ContentType = "application/octet-stream"
Response.WriteFile(Excel文件.FullName)
Response.End()但是,问题来了。
第一次下载,先执行javaScript,再下载,没问题。但是第二次javaScript报错了。就报在"obj = document.all("textbox1");"这句话上。下载还是可以的。并且,如果第一次下载时,在下载窗口按取消的话,第二次就不会报错。
所以,我认为下载的程序有可能影响了javascript。或者说是影响了前台。使之找不到textbox控件,结果出错。
我调查了很久,一直找不到解决方法。希望各位高手,鼎力相组,帮我想想办法,我在这里多谢了!!!另外,我其他取控件的javascript方法也用过了,不行。
检查是用javaScript写的,写在前台,取控件是这样写的
var obj;
obj = document.all("textbox1");
.......下载的程序写在后台,程序是
Response.Clear()
Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(Excel文件.Name))
Response.AddHeader("Content-Length", Excel文件.Length.ToString())
Response.ContentType = "application/octet-stream"
Response.WriteFile(Excel文件.FullName)
Response.End()但是,问题来了。
第一次下载,先执行javaScript,再下载,没问题。但是第二次javaScript报错了。就报在"obj = document.all("textbox1");"这句话上。下载还是可以的。并且,如果第一次下载时,在下载窗口按取消的话,第二次就不会报错。
所以,我认为下载的程序有可能影响了javascript。或者说是影响了前台。使之找不到textbox控件,结果出错。
我调查了很久,一直找不到解决方法。希望各位高手,鼎力相组,帮我想想办法,我在这里多谢了!!!另外,我其他取控件的javascript方法也用过了,不行。
------------------------
不会的,找找别的原因!
<script language="javascript">
var obj1;
function check(){
if ( checkScreen() != true ){
return false;
}
return true;
}function checkScreen(){ obj1 = document.all("textbox1");// 这行爆掉
if (obj1.value.length == 0 ){
alert("不能为空");
return false;
}
return true;
}</script >
请大家看看,哪里有问题,谢谢大家
换成
obj1 = eval(document.all.textbox1);
<frameset frameBorder="1" cols="20%,80%">
<frame name="frmLeft" src="" noResize scrolling="no">
<frame name="frmRight" src="test.aspx">
</frameset>如果我个页面test.aspx不放在frame中,怎么按也不会爆,看来是frame与下载source之间的冲突,但是我不知道怎么解决。根本问题到底是什么。大家可以试试,肯定会导致javascript爆的。希望大家继续帮忙,谢谢大家!!!!!