在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
ASP.NET使用新增的Page.ClientScript属性在ASP.NET页面上注册和使用Javascript函数. 注意: .NET Framewrok 1.0/1.1中的Page.RegisterStartupScript 和 Page.RegisterClientScriptBlock方法已经被弃用,这两个用于注册脚本的方法需要一组键/值对,由于方法比较复杂,很可能发生键名冲突.Page.ClientScript属性把所有的脚本注册都放在一起,使代码不容易出错
<1>使用Page.ClientScript.RegisterClientScriptBlock(注册到页面顶部) 两种构建方式: 1).RegisterClientScriptBlock(Type type,String key,String script); //类型,键,脚本 2).RegisterClientScriptBlock(Type type,String key,String script,bool addScriptTags); //类型,键,脚本,是否添加脚本标记 例子: <!--.aspx页面--> <asp:Button ID="btnScript" runat="server" OnClick="btnScript_Click" Text="点击输出javascript" /> <!--.aspx.cs页面--> protected void btnScript_Click(object sender, EventArgs e) /// <summary> <2>使用Page.ClientScript.RegisterStartupScript(注册到页面底部)
两种构建方式: 1).RegisterStartupScript(Type type,String key,String script); //类型,键,脚本 2).RegisterStartupScript(Type type,String key,String script,bool addScriptTags); //类型,键,脚本,是否添加脚本标记 注意:这两种注册方法虽然只是注册部位不一样,但是区别很大.如果页面上有一些处理控件的JavaScript,应该使用RegisterStartupScript 例子: <!--.aspx页面--> <asp:Button ID="btnScript" runat="server" OnClick="btnScript_Click" Text="点击输出javascript" /> <asp:TextBox ID="txtMessage" runat="server">Hello ASP.NET!</asp:TextBox> //错误示范 //<!--.aspx.cs页面(使用RegisterClientScriptBlock报错,找不到指定控件的ID) -->
//protected void btnScript_Click(object sender, EventArgs e) //正确示范 <!--.aspx.cs页面(应该使用RegisterStartupScript) --> protected void btnScript_Click(object sender, EventArgs e) <3>使用Page.ClientScript.RegisterClientScriptInclude(引用.js文件) //C#中: string myScript = "myJsCode.js"; Page.ClientScript.RegisterClientScriptInclude("myKey",myScript); //这会在ASP.NET中生成以下代码 <script scr="myJsCode.js" type="text/javascript"></script> <4>使用回调功能(Ajax效果) 步骤: 1)在ASP.NET建立<input type='button' .../> 2)写入调用javscript 3)在.aspx.cs页面中实现ICallBackEventHandler接口 4)实现接口的两个方法:GetCallbackResult,RaiseCallbackEvent 5)在Page_Load里面注册脚本 例子: <!-- aspx页面 --> <script language="javascript" type="text/javascript"> //用来接受返回信息并显示 注意:<asp:button>不能在这里使用 <!-- aspx.cs页面 --> public partial class CallBackPage: System.Web.UI.Page,System.Web.UI.ICallbackEventHandler { private string _callbackResult = null; //GetRandom是方法名, 不需要括号()
#region ICallbackEventHandler 成员(实现接口) string ICallbackEventHandler.GetCallbackResult() void ICallbackEventHandler.RaiseCallbackEvent(string eventArgument) }
|
请发表评论