在ASP.NET中我们经常需要输出一些JS脚本,比如弹出一个警告窗口,返回到历史页面等JS功能,我看到网上流传得比较广的是马先光写的一个JScript类,这个类基本将经常用到的JS脚本包含了,非常方便,唯一的不足是作者采用的Response.Write(string msg)的办法,这样造成输出的js脚本在<html></html>标签之外,破坏了原有XHTML的结构,所以本人在满足原功能的情况下,对JScript类做了进一步的改善,这个改善采用了重载的办法,增加了一个System.Web.UI.Page类的实例作为参数,不会影响原来的程序代码。
整个程序的代码如下:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Text;
usingSystem.Web;
usingSystem.Web.UI;
///<summary>
///一些常用的Js调用
///添加新版说明:由于旧版普遍采用Response.Write(stringmsg)的方式输出js脚本,这种
///方式输出的js脚本会在html元素的<html></html>标签之外,破坏了整个xhtml的结构,
///而新版本则采用ClientScript.RegisterStartupScript(stringmsg)的方式输出,不会改变xhtml的结构,
///不会影响执行效果。
///为了向下兼容,所以新版本采用了重载的方式,新版本中要求一个System.Web.UI.Page类的实例。
///创建时间:2006-9-13
///创建者:马先光
///新版作者:周公
///修改日期:2007-4-17
///修改版发布网址:http://blog.csdn.net/zhoufoxcn
///</summary>
publicclassJScript
{
#region旧版本
///<summary>
///弹出JavaScript小窗口
///</summary>
///<paramname="js">窗口信息</param>
publicstaticvoidAlert(stringmessage)
{
#region
stringjs=@"<Scriptlanguage='JavaScript'>
alert('"+message+"');</Script>";
HttpContext.Current.Response.Write(js);
#endregion
}
///<summary>
///弹出消息框并且转向到新的URL
///</summary>
///<paramname="message">消息内容</param>
///<paramname="toURL">连接地址</param>
publicstaticvoidAlertAndRedirect(stringmessage,stringtoURL)
{
#region
stringjs="<scriptlanguage=javascript>alert('{0}');window.location.replace('{1}')</script>";
HttpContext.Current.Response.Write(string.Format(js,message,toURL));
#endregion
}
///<summary>
///回到历史页面
///</summary>
///<paramname="value">-1/1</param>
publicstaticvoidGoHistory(intvalue)
{
#region
stringjs=@"<Scriptlanguage='JavaScript'>
history.go({0});
</Script>";
HttpContext.Current.Response.Write(string.Format(js,value));
#endregion
}
///<summary>
///关闭当前窗口
///</summary>
publicstaticvoidCloseWindow()
{
#region
stringjs=@"<Scriptlanguage='JavaScript'>
parent.opener=null;window.close();
</Script>";
HttpContext.Current.Response.Write(js);
HttpContext.Current.Response.End();
#endregion
}
///<summary>
///刷新父窗口
///</summary>
publicstaticvoidRefreshParent(stringurl)
{
#region
stringjs=@"<Scriptlanguage='JavaScript'>
window.opener.location.href='"+url+"';window.close();</Script>";
HttpContext.Current.Response.Write(js);
#endregion
}
///<summary>
///刷新打开窗口
///</summary>
publicstaticvoidRefreshOpener()
{
#region
stringjs=@"<Scriptlanguage='JavaScript'>
opener.location.reload();
</Script>";
HttpContext.Current.Response.Write(js);
#endregion
}
///<summary>
///打开指定大小的新窗体
///</summary>
///<paramname="url">地址</param>
///<paramname="width">宽</param>
///<paramname="heigth">高</param>
///<paramname="top">头位置</param>
///<paramname="left">左位置</param>
publicstaticvoidOpenWebFormSize(stringurl,intwidth,intheigth,inttop,intleft)
{
#region
stringjs=@"<Scriptlanguage='JavaScript'>window.open('"+url+@"','','height="+heigth+",width="+width+",top="+top+",left="+left+",location=no,menubar=no,resizable=yes,scrollbars=yes,status=yes,titlebar=no,toolbar=no,directories=no');</Script>";
HttpContext.Current.Response.Write(js);
#endregion
}
///<summary>
///转向Url制定的页面
///</summary>
///<paramname="url">连接地址</param>
publicstaticvoidJavaScriptLocationHref(stringurl)
{
#region
stringjs=@"<Scriptlanguage='JavaScript'>
window.location.replace('{0}');
</Script>";
js=string.Format(js,url);
HttpContext.Current.Response.Write(js);
#endregion
}
///<summary>
///打开指定大小位置的模式对话框
///</summary>
///<paramname="webFormUrl">连接地址</param>
///<paramname="width">宽</param>
///<paramname="height">高</param>
///<paramname="top">距离上位置</param>
///<paramname="left">距离左位置</param>
publicstaticvoidShowModalDialogWindow(stringwebFormUrl,intwidth,intheight,inttop,intleft)
{
#region
stringfeatures="dialogWidth:"+width.ToString()+"px"
+";dialogHeight:"+height.ToString()+"px"
+";dialogLeft:"+left.ToString()+"px"
+";dialogTop:"+top.ToString()+"px"
+";center:yes;help=no;resizable:no;status:no;scroll=yes";
ShowModalDialogWindow(webFormUrl,features);
#endregion
}
///<summary>
///弹出模态窗口
///</summary>
///<paramname="webFormUrl"></param>
///<paramname="features"></param>
publicstaticvoidShowModalDialogWindow(stringwebFormUrl,stringfeatures)
{
stringjs=ShowModalDialogJavascript(webFormUrl,features);
HttpContext.Current.Response.Write(js);
}
///<summary>
///弹出模态窗口
///</summary>
///<paramname="webFormUrl"></param>
///<paramname="features"></param>
///<returns></returns>
publicstaticstringShowModalDialogJavascript(stringwebFormUrl,stringfeatures)
{
#region
stringjs=@"<scriptlanguage=javascript>
showModalDialog('"+webFormUrl+"','','"+features+"');</script>";
returnjs;
#endregion
}
#endregion
#region新版本
///<summary>
///弹出JavaScript小窗口
///</summary>
///<paramname="js">窗口信息</param>
publicstaticvoidAlert(stringmessage,Pagepage)
{
#region
stringjs=@"<Scriptlanguage='JavaScript'>
alert('"+message+"');</Script>";
//HttpContext.Current.Response.Write(js);
if(!page.ClientScript.IsStartupScriptRegistered(page.GetType(),"alert"))
{
page.ClientScript.RegisterStartupScript(page.GetType(),"alert",js);
}
#endregion
}
///<summary>
///弹出消息框并且转向到新的URL
///</summary>
///<paramname="message">消息内容</param>
///<paramname="toURL">连接地址</param>
publicstaticvoidAlertAndRedirect(stringmessage,stringtoURL,Pagepage)
{
#region
stringjs="<scriptlanguage=javascript>alert('{0}');window.location.replace('{1}')</script>";
//HttpContext.Current.Response.Write(string.Format(js,message,toURL));
if(!page.ClientScript.IsStartupScriptRegistered(page.GetType(),"AlertAndRedirect"))
{
page.ClientScript.RegisterStartupScript(page.GetType(),"AlertAndRedirect",string.Format(js,message,toURL));
}
#endregion
}
///<summary>
///回到历史页面
///</summary>
///<paramname="value">-1/1</param>
publicstaticvoidGoHistory(intvalue,Pagepage)
{
#region
stringjs=@"<Scriptlanguage='JavaScript'>
history.go({0});
</Script>";
//HttpContext.Current.Response.Write(string.Format(js,value));
if(!page.ClientScript.IsStartupScriptRegistered(page.GetType(),"GoHistory"))
{
page.ClientScript.RegisterStartupScript(page.GetType(),"GoHistory",string.Format(js,value));
}
#endregion
}
/////<summary>
/////关闭当前窗口
/////</summary>
//publicstaticvoidCloseWindow()
//{
//#region
//stringjs=@"<Scriptlanguage='JavaScript'>
//parent.opener=null;window.close();
//</Script>";
//HttpContext.Current.Response.Write(js);
//HttpContext.Current.Response.End();
//#endregion
//}
///<summary>
///刷新父窗口
///</summary>
publicstaticvoidRefreshParent(stringurl,Pagepage)
{
#region
stringjs=@"<Scriptlanguage='JavaScript'>
window.opener.location.href='"+url+"';window.close();</Script>";
//HttpContext.Current.Response.Write(js);
if(!page.ClientScript.IsStartupScriptRegistered(page.GetType(),"RefreshParent"))
{
page.ClientScript.RegisterStartupScript(page.GetType(),"RefreshParent",js);
}
#endregion
}
///<summary>
///刷新打开窗口
///</summary>
publicstaticvoidRefreshOpener(Pagepage)
{
#region
stringjs=@"<Scriptlanguage='JavaScript'>
opener.location.reload();
</Script>";
//HttpContext.Current.Response.Write(js);
if(!page.ClientScript.IsStartupScriptRegistered(page.GetType(),"RefreshOpener"))
{
page.ClientScript.RegisterStartupScript(page.GetType(),"RefreshOpener",js);
}
#endregion
}
///<summary>
///打开指定大小的新窗体
///</summary>
///<paramname="url">地址</param>
///<paramname="width">宽</param>
///<paramname="heigth">高</param>
///<paramname="top">头位置</param>
///<paramname="left">左位置</param>
publicstaticvoidOpenWebFormSize(stringurl,intwidth,intheigth,inttop,intleft,Pagepage)
{
#region
stringjs=@"<Scriptlanguage='JavaScript'>window.open('"+url+@"','','height="+heigth+",width="+width+",top="+top+",left="+left+",location=no,menubar=no,resizable=yes,scrollbars=yes,status=yes,titlebar=no,toolbar=no,directories=no');</Script>";
//HttpContext.Current.Response.Write(js);
if(!page.ClientScript.IsStartupScriptRegistered(page.GetType(),"OpenWebFormSize"))
{
page.ClientScript.RegisterStartupScript(page.GetType(),"OpenWebFormSize",js);
}
#endregion
}
///<summary>
///转向Url制定的页面
///</summary>
///<paramname="url">连接地址</param>
publicstaticvoidJavaScriptLocationHref(stringurl,Pagepage)
{
#region
stringjs=@"<Scriptlanguage='JavaScript'>
window.location.replace('{0}');
</Script>";
js=string.Format(js,url);
//HttpContext.Current.Response.Write(js);
if(!page.ClientScript.IsStartupScriptRegistered(page.GetType(),"JavaScriptLocationHref"))
{
page.ClientScript.RegisterStartupScript(page.GetType(),"JavaScriptLocationHref",js);
}
#endregion
}
///<summary>
///打开指定大小位置的模式对话框
///</summary>
///<paramname="webFormUrl">连接地址</param>
///<paramname="width">宽</param>
///<paramname="height">高</param>
///<paramname="top">距离上位置</param>
///<paramname="left">距离左位置</param>
publicstaticvoidShowModalDialogWindow(stringwebFormUrl,intwidth,intheight,inttop,intleft,Pagepage)
{
#region
stringfeatures="dialogWidth:"+width.ToString()+"px"
+";dialogHeight:"+height.ToString()+"px"
+";dialogLeft:"+left.ToString()+"px"
+";dialogTop:"+top.ToString()+"px"
+";center:yes;help=no;resizable:no;status:no;scroll=yes";
ShowModalDialogWindow(webFormUrl,features,page);
#endregion
}
///<summary>
///弹出模态窗口
///</summary>
///<paramname="webFormUrl"></param>
///<paramname="features"></param>
publicstaticvoidShowModalDialogWindow(stringwebFormUrl,stringfeatures,Pagepage)
{
stringjs=ShowModalDialogJavascript(webFormUrl,features);
//HttpContext.Current.Response.Write(js);
if(!page.ClientScript.IsStartupScriptRegistered(page.GetType(),"ShowModalDialogWindow"))
{
page.ClientScript.RegisterStartupScript(page.GetType(),"ShowModalDialogWindow",js);
}
}
/////<summary>
/////弹出模态窗口
/////</summary>
/////<paramname="webFormUrl"></param>
/////<paramname="features"></param>
/////<returns></returns>
//publicstaticstringShowModalDialogJavascript(stringwebFormUrl,stringfeatures)
//{
//#region
//stringjs=@"<scriptlanguage=javascript>
//showModalDialog('"+webFormUrl+"','','"+features+"');</script>";
//returnjs;
//#endregion
//}
#endregion
}
分享到:
相关推荐
ASP.NET中常用输出JS脚本的类ASP.NET中常用输出JS脚本的类
【ASP.NET编程知识】ASP.NET中常用输出JS脚本的类实例.docx
本文实例讲述了ASP.NET中常用输出JS脚本的类,针对过去输出js脚本的类进行了一定的改进。在项目开发中非常具有实用价值。分享给大家供大家参考。具体如下: 很多时候在ASP.NET中我们经常需要输出一些JS脚本,比如弹...
asp.net后台如何输出js脚本,用page.ClientScript.RegisterStartupScript方式实现,实现示例如下,感兴趣的朋友不要错过
1、使用代码内嵌的方式,在asp.net页面上输出九九乘法表。 2、使用双重循环,外循环的for代码:for (int i = 1; i ; i++),内循环的for代码: for (int j = 1; j ; j++)。 3、使用外循环控制表格的行的输出,使用内...
ASP.NET中常用的功能非常强大工具,使用它可以加载图片等。
ASP.NET中使用客户端脚本
如何在ASP.NET页面中使用一种特定类型的对象,即服务器控件,以及如何充分利用这个控件。
ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP...
asp.net中常用到的SQL分页存储过程
asp.net mvc core 使用js dialog对话框 asp.net mvc core 使用js dialog对话框
asp.net中javascript 通用类,提供常用的JS方法,在asp.net后台直接传参调用
asp.net实现的图形输出及图形报表, 包括asp chart类库 piechart类
asp.net教程asp.net教程asp.net教程asp.net教程asp.net教程asp.net教程asp.net教程asp.net教程asp.net教程asp.net教程asp.net教程asp.net教程asp.net教程asp.net教程asp.net教程asp.net教程asp.net教程asp.net教程...
此外,《ASP.NET 4高级程序设计(第4版)》专门提供了两章的内容来教你如何用Ajax 技术制作快速响应的页面,以及如何使用微软的ASP.NETAJAX平台。另外,还专门介绍了ASP.NET4 新增的功能,如MVC 和动态数据等。 《ASP...
ASP.NET 参考手册 在 W3School,我们提供完整的 ASP.NET 参考手册,其中包括内建对象和组件,以及它们的属性和方法。 ASP.NET 实例 ASP.NET 实例 一系列的 ASP.NET 实例。 内容目录 ASP.NET 简介 本章解释 ASP.NET...
ASP.NET 在线考试系统(C# Asp.net SqlSerVer jquary javascript) ASP.NET 在线考试系统(C# Asp.net SqlSerVer jquary javascript)
ASP.net实战项目ASP.net实战项目ASP.net实战项目ASP.net实战项目ASP.net实战项目ASP.net实战项目ASP.net实战项目ASP.net实战项目ASP.net实战项目ASP.net实战项目ASP.net实战项目ASP.net实战项目ASP.net实战项目ASP...