[导入]Asp.net中动态在中加入Scrpit标签
/// 作者 邹健
/// 日期 20070202
/// 重载的Page类。
/// </summary>
public class ChPage : Page {
/**//// <summary>
/// 构造函数。
/// </summary>
public ChPage() { }
/**//// <summary>
/// Render函数。
/// </summary>
/// <param name="writer">HtmlTextWriter。</param>
protected override void Render(HtmlTextWriter writer) {
if (writer is System.Web.UI.Html32TextWriter) {
writer = new FormFixerHtml32TextWriter(writer.InnerWriter);
}
else {
writer = new FormFixerHtmlTextWriter(writer.InnerWriter);
}
base.Render(writer);
}
/**//// <summary>
/// 设置Html标签内,的Link标签,如Css
/// </summary>
/// <param name="cssfile">Css文件。</param>
protected void SetHtmlLink(string cssfile) {
HtmlLink myHtmlLink = new HtmlLink();
myHtmlLink.Href = cssfile;
myHtmlLink.Attributes.Add("rel", "stylesheet");
myHtmlLink.Attributes.Add("type", "text/css");
Page.Header.Controls.Add(myHtmlLink);
}
/**//// <summary>
/// 该函数可获得web.config中的字符串。
/// </summary>
/// <param name="Str">指定项的键值。</param>
/// <returns>返回键值所指的值。</returns>
protected string GetString(string Str) {
return System.Configuration.ConfigurationManager.AppSettings[Str];
}
}
但是后来发现在使用asp.net编程时,如果应用模板页的话,不止是css文件不容易后往里添,javascript文件也是如此,虽然说在模板页的<head />中建一个contentplaceholder也算可以,但那种方法毕竟不太雅,有失风范。于是就想按这种添加<link />标签的方法来泡制<script />
但发现在System.Web.UI.HtmlControls中有HtmlLink来表现<link />但却没有表现<Script />标签的类。
没办法了,因为懒所以只能自己写一个了,代码不长,如下。
/// <summary>
/// 可以生成script标签
/// </summary>
[ControlBuilder(typeof(HtmlEmptyTagControlBuilder)), AspNetHostingPermission(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal), AspNetHostingPermission(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
public class HtmlScript : HtmlControl {
// Methods
public HtmlScript()
: base("script") {
}
protected override void Render(HtmlTextWriter writer) {
writer.WriteBeginTag(this.TagName);
this.RenderAttributes(writer);
writer.Write(">");
writer.WriteEndTag(TagName);
}
protected override void RenderAttributes(HtmlTextWriter writer) {
if (!string.IsNullOrEmpty(this.Src)) {
base.Attributes["src"] = base.ResolveClientUrl(this.Src);
}
base.Attributes["type"] = "text/javascript";
base.RenderAttributes(writer);
}
/// <summary>
/// 脚本的URL
/// </summary>
[UrlProperty]
[DefaultValue("")]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public virtual string Src {
get {
string text = base.Attributes["src"];
if (text == null) {
return string.Empty;
}
return text;
}
set {
base.Attributes["src"] = MapStringAttributeToString(value);
}
}
string MapStringAttributeToString(string s) {
if ((s != null) && (s.Length == 0)) {
return null;
}
return s;
}
}
}
随后我又在原来重 写的ChPage类中添加了一个函数
/// 设置script现在只能是type=text/javsscript的
/// </summary>
/// <param name="src">脚本地址</param>
protected void SetHtmlScript(string src) {
HtmlScript myHtmlScript = new HtmlScript();
myHtmlScript.Src = src;
Page.Header.Controls.Add(myHtmlScript);
}
使用方法
原来的页面脚本是这样的
vb.net
Inherits Page
C#应该类似Default : Page
现在只要改成
Inherits ChPage
C#相应为 Default:ChPage
就可以了
使用时只要在载入前的某个事件,比如Init或Load写 SetHtmlScript("/Javascript/MicrosoftAjax.js")
这样就OK了
直接再看看生成的HTML,吼吼,已经有你添加的<script src=""/Javascript/MicrosoftAjax.js" type="text/javascript"></script>了
本如果文章中有不足的地方请大家要提出啊
文章来源:http://www.cnblogs.com/chsword/archive/2007/08/01/838870.html
转载于:https://www.cnblogs.com/wallis0922/archive/2007/08/28/872321.html
[导入]Asp.net中动态在中加入Scrpit标签相关推荐
- Asp.net中动态在中加入Scrpit标签
许久以前,写过一篇<asp.net页中动态加入样式表文件>,后来发现在使用时如果每页都写这么个函数真是很麻烦,于是自己写了一个Page的派生.将这个函数加了进去. /**/// ...
- Axure中动态面板中的“推动/拉动原件”
拉入一个矩形 改变矩形的大小.颜色.边框. 双击矩形,打上文字"菜单1",改变文字大小.颜色.样式. 选中矩形,"右击"跳出选项栏,点击转换为动态面板. 选中动 ...
- ASP.NET 如何动态修改 title Meta link标签
1 修改稿title 对于修改title在页面内直接用 this.title="要修改的title"就可以了 2 修改 Meta标签 主要是用到了 HtmlMeta H ...
- asp.net panel 加html,ASP.NET 页面中动态增加的控件、添加事件
要求:页面上有一个Add按钮,每点击一次该按钮,页面上动态创建一个WebPartZone! 提醒:WebPartZone只能在OnInit或之前才能创建,否则报异常! 大家都知道,按钮的点击事件是在R ...
- 【C 语言】动态库封装与设计 ( 动态库调用环境搭建 | 创建应用 | 拷贝动态库相关文件到源码路径 | 导入头文件 | 配置动态库引用 | 调用动态库中的函数 )
文章目录 一.在 Visual Studio 2019 中创建 " 控制台应用 " 程序 二.拷贝 xxx.lib.xxx.dll.xxx.h 到源码路径 三.导入 xxx.h 头 ...
- Asp.net(C#)动态生成表格中的按钮和事件响应
最近几天一直在用C#写Asp.net的东西,发觉Asp.net很好用,也不好用,可能自己的认识比较浅,所以还要多多学习.下面是我遇上的一个问题,要动态的生成表格的行,同时在表格中插入按钮相应事件.插入 ...
- 在ASP.NET页面中动态添加控件
今天被问到如何在ASP.NET 页面中动态创建一批控件,并且希望在后续代码中能访问到这些动态创建的控件.我用下面的例子来解释这个问题 ================================= ...
- ASP.NET Core 3.0中使用动态控制器路由
原文:Dynamic controller routing in ASP.NET Core 3.0 作者:Filip W 译文:https://www.cnblogs.com/lwqlun/p/114 ...
- ASP.NET 2.0 中动态添加 GridView 模板列
ASP.NET 2.0 中动态添加 GridView 模板列的例子 动态添加列,关键是实现 ITemplate.InstantiateIn 方法.下面是一个添加 GridView 模板列的例子. ...
最新文章
- java数组转换成字符串,附小技巧
- 解决alert在ios版微信中显示url的问题(重写alert)
- C#中的IntPtr类型(指针等用)
- 微信小程序实现时间戳转为时间格式
- Oracle Explain Plan,hint解释与示例
- python七巧板三角形_用七巧板拼出14种三角形,这才是图形认知的神器!
- axure iphone8元件库_Axure8最全元件库整理
- [裴礼文数学分析中的典型问题与方法习题参考解答]4.5.5
- 关于2022年度深圳市技术攻关重大项目的申报通知
- Axure之中继器的使用
- linux给普通用户添加管理员权限,linux 赋予普通用户管理员权限
- 面试技巧(2) 个人面试注意事项
- 金属非金属如何去毛刺 机器人浮动去毛刺
- 如何用计算机弹出斗地主的声音,玩斗地主没声音电脑瞎出牌。我点的没有.怎么办?...
- 房子,婚姻,名字,这三个关键词,你怎么看?
- NISP一级模拟题(一、二)
- Jungle Roads丛林道路(最小生成树PrimKruskal算法)
- 计算机水平熟悉情况,计算机水平如何填
- MySQL多实例(一台服务器搭建多个数据库)
- 前端对接打印机的一些经验总结
热门文章
- 新手实用的电脑维护小常识
- 电脑技巧:这样检查电脑后终于知道为什么越用越卡
- 只有3%的猿能完全看懂的高端漫画
- c++头文件_51单片机C语言编程知多少:几人不知头文件,你要的干货在这里了
- 树莓派IO口驱动代码的编写、微机总线地址、物理地址、虚拟地址、BCM2835芯片手册
- 原生js追加html代码,原生js实现给指定元素的后面追加内容
- 顺德机器人应用与维修专业收入_保定万维科技技校专业课程巡礼——计算机应用与维修...
- java headless_使用Chrome Headless 快速实现java版数据的抓取
- JavaScript 对象所有API解析【2020版】
- 写出整洁的高效的js代码