宿州市做网站的公司,wordpress 设置版权,河北区做网站公司,长春市长春网站建设网许久以前#xff0c;写过一篇《asp.net页中动态加入样式表文件》#xff0c;后来发现在使用时如果每页都写这么个函数真是很麻烦#xff0c;于是自己写了一个Page的派生。将这个函数加了进去。/**////summary///作者 邹健 ///日期 20070202 ///重载的Page类。…许久以前写过一篇《asp.net页中动态加入样式表文件》后来发现在使用时如果每页都写这么个函数真是很麻烦于是自己写了一个Page的派生。将这个函数加了进去。 /**//// summary /// 作者 邹健 /// 日期 20070202 /// 重载的Page类。 /// /summary public class ChPage : Page { /**//// summary /// 构造函数。 /// /summary public ChPage() { } /**//// summary /// Render函数。 /// /summary /// param namewriterHtmlTextWriter。/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 namecssfileCss文件。/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 nameStr指定项的键值。/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 /标签的类。没办法了因为懒所以只能自己写一个了代码不长如下。 namespace Chsword.Class { /// 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类中添加了一个函数 /// summary /// 设置script现在只能是typetext/javsscript的 /// /summary /// param namesrc脚本地址/param protected void SetHtmlScript(string src) { HtmlScript myHtmlScript new HtmlScript(); myHtmlScript.Src src; Page.Header.Controls.Add(myHtmlScript); } 使用方法 原来的页面脚本是这样的vb.net Partial Class DefaultClass Default Inherits Page C#应该类似Default : Page现在只要改成 Partial Class DefaultClass Default Inherits ChPage C#相应为 Default:ChPage就可以了使用时只要在载入前的某个事件比如Init或Load写 SetHtmlScript(/Javascript/MicrosoftAjax.js)这样就OK了 直接再看看生成的HTML吼吼已经有你添加的script src/Javascript/MicrosoftAjax.js typetext/javascript/script了本如果文章中有不足的地方请大家要提出啊文章来自chsword[邹健的博客]允许转载麻烦留言 邹健 2007-08-01 12:47 发表评论文章来源:http://www.cnblogs.com/chsword/archive/2007/08/01/838870.html转载于:https://www.cnblogs.com/wallis0922/archive/2007/08/28/872321.html