• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Asp.net动态添加JS

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
客户端动态注册 JavaScript

在 ASP.NET2.0 中有一个专门用来管理客户端 JavaScript 脚本的类 ClientScriptManager
这样我们可以根据程序需要动态的注册所需的 JavaScript 脚本程序

它具有四种方式
I   RegisterClientScriptBlock
将 JavaScript 区块添加到页面头部 [Head]。
可 以字符创形式创建这些代码,然后将它传递给添加网页的方法。可以使用这种方式将任何 JavaScript 插入网页。
对应的检测注册方法
Page.ClientScript.IsClientScriptBlockRegistered()

Sample:  
protected void Page_Load(Object sender, EventArgs e)
{
//动态建立 JavaScript
    string info = "";
info
+= "function showName(username)";
info
+= "{alert('您的名字是' + username);}";

//判断 myName 是否已被注册
    if(!Page.ClientScript.IsClientScriptBlockRegistered(this.GetType(), "myName"))
{
    //动态注册 JavaScript
        Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "myName", info, true);
}
}


II RegisterClientScriptInclude
这种方法类似上一种方法,但是会添加引用外部 .js 文件的 JavaScript 区块。
在以动态方式添加任何其他 JavaScript 之前就会添加这个包含文件。因此您可能无法引用网页上的某些项目。
对应的检测注册方法
Page.ClientScript.IsClientScriptIncludeRegistered()

Sample:
Info.js
//JavaScript
function showName(username)
{
alert('您的姓名是: '
+username);
}

Page.aspx
<form id="form1" runat="server">
<div>
请输入姓名:
<input id="txtUserName" type="text" />
<input type="button" id="btnSubmit" value="确定" onclick="showName(txtUserName.value)" />
</div>
</form>

Page.aspx.cs
protected void Page_Load(Object sender, EventArgs e)
{
//动态注册 Info.js
//判断是否已被注册
    if(!ClientScript.IsClientSecriptIncludeRegistered(this.GetType(), "myMessage"))
{
    //若没有被注册,则将 Info.js 动态注册
        Page.ClientScript.RegisterClientScriptInclude("myMessage", "./Script/Info.js");
}
}


III RegisterStartupScript
RegisterStartupScript 通常只包含“执行一次”的 JavaScript,例如用户进入网页就显示一个欢迎光临的消息。
对应的检测注册方法
Page.ClientScript.IsStartupScriptRegistered()

Sample
protected void Page_Load(Object sender, EventArgs e)
{
string info = "<script>alert('欢迎光临领航网络管理系统!');</script>";
if(!Page.ClientScript.IsStartupScriptRegistered("welcome"))
{
Page.ClientScript.RegisterStartupScript(
this.GetType(),"welcome",info);
}
}


IV RegisterOnSubmitStatement
添加 执行以响应网页 onsubmit 事件的 JavaScript。在送出网页之前就会执行 JavaScript,并且让你有机会取消提交操作。
对应检测注册方法
Page.ClientScript.IsOnSubmitStatementRegistered()
另:
  // 引入js文件
HtmlGenericControl scriptControl = new HtmlGenericControl("script");
scriptControl.Attributes.Add(
"type", "text/javascript");
scriptControl.Attributes.Add(
"language", "JavaScript");
scriptControl.Attributes.Add(
"src", "http://images.dayoo.com/travel/9208.files/changeimg.js");
Page.Header.Controls.Add(scriptControl);
// 引入样式表
Literal cssControl = new Literal();
cssControl.Text
= "<link href=\"http://images.dayoo.com/photo/17358.files/css.css\" rel=\"stylesheet\" type=\"text/css\"/>";
Page.Header.Controls.Add(cssControl);


//在页面顶部添加脚本
if (!Page.ClientScript.IsClientScriptBlockRegistered("myscriptKey"))//判断是否已经存在相同//键值的ScriptBlock
{
string myScript = @"function AlertHello(){alert('hello xuanhun!!');}";//脚本内容
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "myscriptKey", myScript,true);

}
//在页面底部添加脚本
if(!Page.ClientScript.IsStartupScriptRegistered("footscriptkey"))
{
string CallScript = @"AlertHello();";
Page.ClientScript.RegisterStartupScript(this.GetType(), "footscriptKey", CallScript, true);
}
// 添加对js文件的引用
if(!Page.ClientScript.IsClientScriptIncludeRegistered("incluedeKey"))
{
string IncludeScript = @"/js/ShowHello.js";
Page.ClientScript.RegisterClientScriptInclude("includeKey", IncludeScript);
}

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap