ASP.NET2.0MasterPage提示總結

來源:互聯網
上載者:User
好久沒有更新部落格了,想了想寫一篇總結一下關於MasterPage的小技巧,都是自己在實際工作中遇到問題->解決問題發現,有更好的方法大家可直接指出。
    1、關於MasterPage和Frameset的使用:網上很多文章爭論到底用MasterPage還是Frameset,我覺得導航樹的系統還是Frameset好,尤其數導航樹非常複雜的時候,雖然VS.NET 2005不支援它的可視化設計,自己手寫html就行了,其實MasterPage就是繼承自UserControl做了一些擴充,也不是什麼新東西,MasterPage每次重新整理整個頁面,感覺效率低。
   2、關於MasterPage中引用Javascript,CSS的問題:如果所有套用模板的頁面都在同一個路徑,這個問題就不存在了,但實際中為了方便管理,往往會建立一些檔案夾,將引用模板的頁面放在不同的檔案加,這時在模板中引用的JS、CSS檔案,由於路徑的問題,在套用它的頁面中不一定能用有用,可以用一下的方法在masterpage中來動態添加JS、CSS檔案的引用:
    方法一:
   

string JSFile = "<script language=\"javascript\" src=\"{0}\" type=\"text/javascript\"></script>";
Response.Write(string.Format(JSFile,ResolveUrl("~/Javascript/jquery.js")));

這種方法雖然可以快速解決問題,但是Response.Write是將指令碼的引用寫到html的最開始,這就破壞了xhtml的格式,會帶來各種存在的隱患,記得過去這麼做的時候,同時在用asp.net ajax做開發的時候,發現ASP.NET AJAX AjaxControlToolkit中很多的控制項不起作用了,後來發現是用了Response.Write的結果。
方法二:
 

string JSFile = "<script language=\"javascript\" src=\"{0}\" type=\"text/javascript\"></script>";
 Page.Header.InnerHtml = string.Format(JSFile,ResolveUrl("~/Javascript/jquery.js"));

 這種方法也可以實現而且可以很好的解決方案中的問題。
方法三: 

 HtmlLink link = new HtmlLink();
 link.Href =  string.Format(JSFile,ResolveUrl("~/CSS/base.css"));;
 link.Attributes["rel"] = "stylesheet";
 link.Attributes["type"] = "text/css";
 page.Header.Controls.Add(link);

 這是註冊樣式的一種方法。
 另外,最近發現了一種註冊用戶端指令碼的方法,那就是結合ASP.NET AJAX 中的ScriptManager控制項來做,相信大家很多人都知道了,如下:

<asp:ScriptManager ID="ScriptManager1" runat="server">
  <Scripts>
      <asp:ScriptReference Path="~/js/jquery.js" />
  </Scripts>
</asp:ScriptManager>
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.