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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

[转]ASP.NET页面HEAD区动态设置全攻略

發布時間:2025/3/17 asp.net 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [转]ASP.NET页面HEAD区动态设置全攻略 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
網頁head區,不能用普通控件,但它有時又很重要,比如title、keywords、description,可能每個頁面都不同,那么怎么樣才能根據內容動態設置它們呢?

  方法1:asp能做到的,asp.net當然可以做到,只要你把整個頁面都用Response.Write()寫出來,沒有什么不能自定義的,當然也可以"<%=某個成員%>"。但很明顯,這樣發揮不了.net的特點。

  方法2:利用asp.net的特有屬性:runat="server",給title設置一個id,然后讓它成為服務器變量,那就可以設置其文本了。但這樣出來的html里邊也會帶有id,看著實在不爽。
后臺:
protected System.Web.UI.HtmlControls.HtmlGenericControl titleControl;
titleControl.InnerText="我把標題給改了!";

  方法3:利用Literal控件,前臺:

???? <HEAD>
??????? <asp:Literal ID="lt_title" Runat="server" />
??????? <asp:Literal ID="lt_keywords" Runat="server" />
??????? <asp:Literal ID="lt_descri" Runat="server" />
??? </HEAD>

  后臺:

???? private void Page_Load(object sender, System.EventArgs e)
??? {
??????? lt_title.Text = "<title>標題</title>";
??????? lt_keywords.Text = "<meta name=\"keywords\" content=\"關鍵字\">";
??????? lt_descri.Text = "<meta name=\"description\" content=\"描述\">";
??? }

  這樣就基本達到完美了。

  更進一步,我的頁面用了不少用戶控件,并且這些用戶控件有層次,而決定頁面title的,可能是某個用戶控件中的子用戶控件來決定的,而且用戶控件的嵌套層次不固定。 那要怎么來動態設置呢?

  首頁,做一個用戶控件的基類,并且給它增加1個public方法:

??????? public void SetTitle(string title)
??????? {
??????????? SetLiteralText("lt_title", string.Format("<title>{0}</title>", title));
??????? }再增加一個private方法:
??????? private void SetLiteralText(string id, string text)
??????? {
??????????? Literal lt = null;
??????????? Control ctrl = this;
??????????? do
??????????? {
??????????????? ctrl = ctrl.Parent;
??????????? }while(ctrl != null && ctrl.GetType().FullName != "System.Web.UI.HtmlControls.HtmlForm" );

??????????? if(ctrl != null)
??????????? {
??????????????? lt = ctrl.FindControl(id) as Literal;
??????????????? if(lt != null)
??????????????????? lt.Text = text;
??????????? }
??????? }

  這樣,你的用戶控件只需要讓它繼承自這個基類,然后在你想設置頁面的title時調用base.SetTitle("標題"),就簡單的完成了任務。對于head區其它標記,原理和設置title一樣。

轉載于:https://www.cnblogs.com/xinyuxin912/archive/2007/09/16/894986.html

總結

以上是生活随笔為你收集整理的[转]ASP.NET页面HEAD区动态设置全攻略的全部內容,希望文章能夠幫你解決所遇到的問題。

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