ASP.NET2.0 WebRource,開發微調按鈕控制元件

NO IMAGE

現在。有許多開發人員已經在使用ASP.NET2.0的WebResource的功能了。WebResource允許我們嵌入資源到程式集中。包括影象,文字等。

在介紹WebResource就不得不介紹一下WebResource.axd,我們來看一下

script language=”javascript”     src=”WebResource.axd?a=s&r=WebUIValidation.js&t=631944362841472848″     type=”text/javascript”></script>目前我發現webResource.axd的引數跟現在版本有屬不同。在早期文章介紹屬性:
a 程式集名稱
r 資原始檔名稱
t 程式集最後修改的時間
 

webResource.axd只是ISAPI中的一個對映。你也可以在使用IhttpHandler。<add verb=”GET” path=”WebResource.axd”     type=”System.Web.Handlers.AssemblyResourceLoader” /> webResource.axd是通過AssemblyResourceLoader類來自定義處理HTTP請求,根據所query傳遞的程式來識別從哪個程式集中獲取哪個資源。

下面以微調控制元件為示例。

使用步驟:
新增要嵌入的資源(比如影象)到項中
在資源管理器中,單擊檔案,在property window(屬性視窗)中build action選擇embedded resource(嵌入資源)。
新增下列檔案到你的assessbly.cs檔案哪中
[assembly: WebResource(“Obies.Web.UI.WebControls.NumericTextBox.js”, “application/x-javascript”)]
[assembly: WebResource(“Obies.Web.UI.WebControls.NumericTextBox_Silver_BtnUp.gif”, “image/gif”)]請注意WebResourceAttribute格式:
[assembly: WebResourceAttribute(“MyNameSpaces.Resources.MyImage.gif”, “image/gif”)]
在CONTROL原始碼當中。你需要使用下面程式碼來獲取影象
    // get WebResource URLs for the embedded gif images
            String BtnUpImgSrc = this.Page.ClientScript.GetWebResourceUrl(typeof(NumericTextBox),
 “Obies.Web.UI.WebControls.NumericTextBox_” this.ImageSet.ToString() “_BtnUp.gif”);GetWebResourceUrl method:Gets a URL reference to a server-side resource.(獲取對伺服器端資源的 URL 引用)
我發現在早期版本當中。它的使用方法是:this.page.GetWebResourceUrl

上面程式碼是從指定的程式集中當中獲取影象名稱:Obies.Web.UI.WebControls.NumericTextBox_” this.ImageSet.ToString() “_BtnUp.gif,它返回的是一個伺服器端資源的URL引用地址。類似於:
WebResource.axd?d=gWYJBlnQKynoTePlJ34jxyoSpR2Rh9lpYd8ZrSl0&t=632812333820000000

另外,MS提供一個Header類。Header類主要是對HTML頁面中的<Head runat=”server”></head>的操作。包括Title等
呵呵。以後要修改一個頁面的標題很很簡單了。
this.Header.Title = “This is the new page title.”;
新增CSS樣式(style attribute) Style style = new Style();
style.ForeColor = System.Drawing.Color.Navy;
style.BackColor = System.Drawing.Color.LightGray;

// Add the style to the header for the body of the page
this.Header.StyleSheet.CreateStyleRule(style, null, “body”);

protected override void OnPreRender (EventArgs e) {
            // get a WebResource URL for the core JS script and register it
            this.Page.ClientScript.RegisterClientScriptResource(typeof(NumericTextBox),
“Obies.Web.UI.WebControls.NumericTextBox.js”);   
            // get a WebResource URL for the embedded CSS
            String css = this.Page.ClientScript.GetWebResourceUrl (typeof(NumericTextBox),
 “Obies.Web.UI.WebControls.NumericTextBox_” this.ImageSet “.css”);
            // register the CSS
           // this.Page.StyleSheetTheme = css;
            //this.Page.Header.LinkedStyleSheets.Add (css); 
//早期版本的方法?只能用下面的程式碼來解決了
            HtmlLink link = new HtmlLink();
            link.Attributes.Add(“type”, “text/css”);
            link.Attributes.Add(“rel”, “stylesheet”);
            link.Attributes.Add(“href”, css);
            this.Page.Header.Controls.Add(link);

        }      
下面是微調控制元件的截圖

使用方法:
<%@ register tagprefix=”cc” namespace=”Obies.Web.UI.WebControls” assembly=”Obies.Web.UI.WebControls” %>

<cc:NumericTextBox width=”50″ ImageSet=”Silver” length=”2″ runat=”server” id=”NumericTextBox1″
maxvalue=”10″ minvalue=”0″></cc:NumericTextBox>
<cc:NumericTextBox width=”50″ ImageSet=”Green” length=”2″ runat=”server” id=”NumericTextBox2″
maxvalue=”10″ minvalue=”0″></cc:NumericTextBox>

來源地址:http://msdn.microsoft.com/library/default.asp?url=/library/en-us/
dnvs05/html/webresource.asp
由於原來的程式碼有點問題,很多特性都是最新VS2005不支援的。所以進行了修改。
原始碼下載:http://www.cnblogs.com/Files/cnzc/PostWebFormBetweenFrames.zip

在寫這篇文章查了很多資料。也嘗試用心去寫。但總感覺寫的不是很好。網上也有相關的webresource的介紹。但發現很多都是目前最新版本不支援的。不知道是不是以前ASP.NET2.0早期版本。所以才進行了簡單的修改。
以後在努力了。

您可能感興趣的文章:

ASP.NET2.0快取(Cache)技術深入理解ASP.NET2.0中用Gridview控制元件運算元據的程式碼ASP.NET2.0 SQL Server資料庫連線詳解asp.net2.0實現郵件傳送(測試成功)在ASP.NET2.0中通過Gmail傳送郵件的程式碼ASP.NET2.0 SQL Server2005構建多層應用ASP.NET2.0:頁面中鏈入的CSS、js檔案帶中文時需注意ASP.NET2.0伺服器控制元件之自定義狀態管理ASP.NET2.0中資料來源控制元件之非同步資料訪問Asp.Net2.0許可權樹中Checkbox的操作ASP.Net2.0 GridView 多列排序,顯示排序圖示,分頁ASP.NET2.0伺服器控制元件之型別轉換器ASP.NET2.0資料庫入門之SQL ServerASP.NET2.0資料庫入門之SqlDataSourceasp.net2.0如何加密資料庫聯接字串ASP.NET2.0新特性概述ASP.NET2.0伺服器控制元件之Render方法asp.net2.0中css失效的解決方法