########关于document对像未指明的错误##########
主页面是用IFRAME的,有top,left,main三个框架
功能页在main中,问题是:在功能页中有一个导出excel功能,方法是
response.AppendHeader....
response.Write(.....
response.End();
这样,会弹出一个保存的窗口
当保存完后,在main中的js脚本,所有使用到document对像的都会出现“未指明的错误”,
包括验证控件的js也会报错
如果不使用框架,直接访问功能页,则不会出现这种情况
潘立 17:11:32
主页面是用IFRAME的,有top,left,main三个框架
功能页在main中,问题是:在功能页中有一个导出excel功能,方法是
response.AppendHeader....
response.Write(.....
response.End();
这样,会弹出一个保存的窗口
当保存完后正常,在后来操作界面时,main中的js脚本,所有使用到document对像的都会出现“未指明的错误”,
包括验证控件的js也会报错
如果不使用框架,直接访问功能页,则不会出现这种情况
导出代码如下
/// <summary>
/// 导出文件
/// </summary>
/// <param name= "ds "> 数据集 </param>
/// <param name= "FileName "> 文件名 </param>
/// <param name= "fileType "> 导出类型(文件反缀,如 "xls ", "txt ") </param>
/// <param name= "ControlPage "> 调用页Page对象 </param>
/// 调用:PubFunction.exportFile(dsUsers, "UserInfo ", "xls ",this.Page);
public static void exportFile(DataSet ds,string FileName,string fileType,System.Web.UI.Page ControlPage)
{
string s=System.Text.Encoding.Default.BodyName.ToString();// .Defalut();
HttpResponse resp;
resp = ControlPage.Response;
//设置类型为中文防止乱码的出现
resp.Charset= "gb2312 ";
//设置输出流为简体中文
resp.ContentEncoding = System.Text.Encoding.GetEncoding( "GB2312 ");
//由于网页编码格式为UTF-8,输出的文件名应对应该格式
resp.AppendHeader( "Content-Disposition ", "attachment;filename= " +HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8)+ ". "+fileType);
string colHeaders= " ", ls_item= " ";
int i=0;
//定义表对象与行对像,同时用DataSet对其值进行初始化
DataTable dt=ds.Tables[0];
DataRow[] myRow=dt.Select( " ");
// typeid== "1 "时导出为EXCEL格式文件;typeid== "2 "时导出为XML格式文件
//取得数据表各列标题,各标题之间以\t分割,最后一个列标题后加回车符
for(i=0;i <dt.Columns.Count-1;i++)
colHeaders+=dt.Columns[i].Caption.ToString()+ "\t ";
colHeaders +=dt.Columns[i].Caption.ToString() + "\r\n ";
//向HTTP输出流中写入取得的数据信息
resp.Write(colHeaders);
//逐行处理数据
foreach(DataRow row in myRow)
{
//在当前行中,逐列获得数据,数据之间以\t分割,结束时加回车符\n
for(i=0;i <dt.Columns.Count-1;i++)
ls_item +=row[i].ToString() + "\t ";
ls_item += row[i].ToString() + "\r\n ";
//当前行数据写入HTTP输出流,并且置空ls_item以便下行数据
resp.Write(ls_item);
ls_item= " ";
}
//写缓冲区中的数据到HTTP头文件中
resp.End();
}
------解决方案--------------------resp.AppendHeader( "Content-Disposition ", "attachment;filename= " +HttpUtility.UrlEncode(FileName, Syste