日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Asp.net中动态在中加入Scrpit标签

發布時間:2025/4/5 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Asp.net中动态在中加入Scrpit标签 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
許久以前,寫過一篇《asp.net頁中動態加入樣式表文件》,后來發現在使用時如果每頁都寫這么個函數真是很麻煩,于是自己寫了一個Page的派生。將這個函數加了進去。
??????/**////?<summary>
????
///?作者?鄒健
????
///?日期?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 />標簽的類。
沒辦法了,因為懶所以只能自己寫一個了,代碼不長,如下。
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現在只能是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
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" type="text/javascript"></script>了

本如果文章中有不足的地方請大家要提出啊
文章來自chsword[鄒健的博客]允許轉載麻煩留言


總結

以上是生活随笔為你收集整理的Asp.net中动态在中加入Scrpit标签的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。