Client端Script的动态注册

来源:互联网 发布:淘宝app6.1.4 编辑:程序博客网 时间:2024/06/15 17:11
 
  1. 1,使用RegisterClientScriptInclude动态注册.js文件
  2. step1:准备javaScript文件
  3. // JScript 文件
  4. function showName(username)
  5. {
  6.     alert('您的姓名是:'+username);
  7. }
  8. step2:网页及控件配置
  9.          在网页中要添加的是Client端的控件,在用户输入姓名之后通过动态注册的javaScript文件Info.js中的 function
  10. showName 将TextBox显示出来:
  11. <%@ Page Language="C#" AutoEventWireup="true" CodeFile="PageRegisterClientScriptInclude.aspx.cs" Inherits="PageRegisterClientScriptInclude" %>
  12. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  13. <html xmlns="http://www.w3.org/1999/xhtml" >
  14. <head runat="server">
  15.     <title>未命名页面</title>
  16. </head>
  17. <body>
  18.     <form id="form1" runat="server">
  19.     <div>
  20.         请输入姓名:<input id="txtUserName" type="text" />
  21.         <input id="btnSubmit" type="button" value="确定" onclick="showName(txtUserName.value)"/>
  22.         </div>
  23.     </form>
  24. </body>
  25. </html>
  26. step3:动态注册javaScript文件
  27.          最后一道程序是将Info.js的javaScript文件动态注册到页面:
  28. public partial class PageRegisterClientScriptInclude : System.Web.UI.Page
  29. {
  30.     protected void Page_Load(object sender, EventArgs e)
  31.     {
  32.    //动态注册Info.js的JavaScript文件
  33.    //判断是否已被注册
  34.    if (!ClientScript.IsClientScriptIncludeRegistered(this.GetType(), "myMessage"))
  35.    {
  36.     //若没有被注册,则将Info.js动态注册
  37.     Page.ClientScript.RegisterClientScriptInclude("myMessage""./Script/Info.js");
  38.    }
  39.     }
  40. }
  41. 2.使用RegisterClientScriptBlock动态注册javaScript指令区块.
  42. 本范例与上一个原理大致相同.通过RegisterClientScriptBlock方法可以动态建构javaScript指令,不像上一个范例所注册的是已存在的javaScript文件Info.js:
  43. public partial class PageRegisterClientScriptBlock : System.Web.UI.Page
  44. {
  45.     protected void Page_Load(object sender, EventArgs e)
  46.     {
  47.    //动态创建JavaScript
  48.    string info="";
  49.    info += "function showName(username)";
  50.    info += "{ alert('您的名字是:'+ username); }";
  51.    //判断myName是否已被注册
  52.    if (!Page.ClientScript.IsClientScriptBlockRegistered(this.GetType(), "myName"))
  53.    {
  54.     //动态注册JavaScript
  55.     Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "myName", info,true);
  56.    }
  57.     }
  58. }
  59. 3.使用RegisterStartUpScript动态注册javaScript指令
  60. RegisterStartUpScript通常只包含"执行一次"的javaScript,
  61. public partial class PageRegisterStartUpScript : System.Web.UI.Page
  62. {
  63.     protected void Page_Load(object sender, EventArgs e)
  64.     {
  65.    string info = "<script>alert('欢迎光临DotNet开发圣殿!')</script>";
  66.    if (!Page.ClientScript.IsStartupScriptRegistered("Welcome"))
  67.    {
  68.     Page.ClientScript.RegisterStartupScript(this.GetType(), "Welcome", info);
  69.    }
  70.     }
  71. }