在上一篇文章中,經過繼承TextBox建立了一個簡單的自定義控件。
這篇文章主要講一下自定義控件中資源文件的封裝。
在自定義控件中可能會用到圖片、CSS樣式表、JS文件等,能夠把這些設爲控件的屬性,讓用戶來填充,這是一個不太好的辦法。本文提供一種方法,將資源文件封裝進控件中。
一、首先把須要用到的文件拷貝到控件項目下,若是你的項目下有不少控件,能夠分別建立獨立的文件夾,放置各自的資源文件。
二、設置文件的屬性,如圖:生成操做 選擇:嵌入的資源
三、打開程序集信息文件,如圖:
在文件的最後添加引用的資源文件信息,以圖片logo.gif爲例。
程序的命名空間爲:VeryCodes.Controls.Web,存放圖片的文件夾爲:BlogTitle
- [assembly: WebResource("VeryCodes.Controls.Web.BlogTitle.logo.gif", "p_w_picpath/gif")]
若是你有多個文件,依次添加進來就能夠了。
常見的格式有:p_w_picpath/gif、text/javascript、text/css等
若是使用png文件可能會有問題,瀏覽器可能解析不了。
四、在程序中使用:
能夠這樣獲得:
- String ImgUrl = Page.ClientScript.GetWebResourceUrl(this.GetType(), "VeryCodes.Controls.Web.BlogTitle.logo.gif");
五、CSS和Js文件的註冊:
註冊CSS
- string cssUrl = Page.ClientScript.GetWebResourceUrl(this.GetType(), "VeryCodes.Controls.Web.BlogTitle.logo.css");
- HtmlLink cssLink = new HtmlLink();
- cssLink.Href = cssUrl;
- cssLink.Attributes.Add("rel", "stylesheet");
- cssLink.Attributes.Add("type", "text/css");
- Page.Header.Controls.Add(cssLink);
註冊Js文件有兩種方法:
- //1
- Page.ClientScript.RegisterClientScriptResource(this.GetType(), "VeryCodes.Controls.Web.BlogTitle.logo.js");
-
- //2
- string JsUrl = Page.ClientScript.GetWebResourceUrl(this.GetType(), "VeryCodes.Controls.Web.BlogTitle.logo.Js");
- Page.Header.Controls.Add(new LiteralControl("<script type=\"text/javascript\" src=\""+ JsUrl +"\" ></script>"))
基本的使用方法到這裏就講完了。
還有一個小技巧:若是圖片是在你的JS文件中使用,你就須要修改js,將資源圖片做爲參數傳入。
Ok,本文到此結束!