1. 程式人生 > >ASP.NET 自定義伺服器控制元件

ASP.NET 自定義伺服器控制元件

 本文通過建立一個最簡單的伺服器控制元件,演示開發伺服器端控制元件的流程。 

文章內容整理自MSDN的程式設計指南,原文地址在文章末尾的資源中。

本文建立一個簡單的伺服器控制元件,名為RedLabel它的使用方式為:

    文章內容

     本文通過建立一個最簡單的伺服器控制元件,演示開發伺服器端控制元件的流程。 

    文章內容整理自MSDN的程式設計指南,原文地址在文章末尾的資源中。

    本文建立一個簡單的伺服器控制元件,名為 RedLabel。 它的使用方式為:

這個標籤會將自己的Text屬性值以紅色的樣式輸出到頁面上。執行結果如圖所示:


步驟

新建一個空白解決方案,在此解決方案下新建一個類庫專案,名稱為MyControl。在類庫中新建一個伺服器端控制元件,名稱為RedLabel。如圖所示:




開啟RedLabel類,將整個類的程式碼修改為:

    using System;  
    using System.Collections.Generic;  
    using System.ComponentModel;  
    using System.Text;  
    using System.Web;  
    using System.Web.UI;  
    using System.Web.UI.WebControls;  
      
    namespace MyControl  
    {  
        [DefaultProperty("Text")]  
        [ToolboxData("<{0}:RedLabel runat=server></{0}:RedLabel>")]  
        public class RedLabel : Label   
    {  
            //重寫RenderContent函式,輸出控制元件內容  
            protected override void RenderContents(HtmlTextWriter output)  
            {  
                //將自己的Text屬性(繼承自Label類)值使用紅色樣式輸出  
                output.Write("<div style='color:red'>" + Text + "</div>");  
            }  
        }  
    }  

至此自定義label控制元件編寫完畢。


配置程式集屬性

1.  開啟類庫專案下的程式集屬性檔案:AssemblyInfo.cs如圖所示:


1.  在檔案開頭新增下面程式碼:

using System.Web.UI;

2.  在檔案末尾新增下面的程式碼:

 [assembly: TagPrefix("MyControl", "f")]

其中MyControl是名稱空間的名稱。f是自定義控制元件的標籤字首。

程式碼說明

在頁面中使用自定義控制元件

要在頁面中使用自定義控制元件,需要事先進行註冊,註冊的目的是將控制元件的字首和名稱空間進行對映,這樣就能通過標籤名找到標籤對應的實現類。註冊的方式有兩種

1.在頁面中使用@ Register指令,如以下示例所示:

    <%@ RegisterAssembly="ServerControl" TagPrefix="aspSample” Namespace="ServerControl"%>  

2. Web.config檔案中指定標記字首/名稱空間對映。 如果將在 Web應用程式的多個頁中使用自定義控制元件,則該方法非常有用。 下面的示例顯示了一個 Web.config檔案,該檔案指定了程式集MyControl中名稱空間MyControl和標籤字首f的對映

    <?xml version="1.0"?>  
    <configuration>  
      <system.web>      
       <pages>  
         <controls>  
           <add tagPrefix="f" Assembly="MyControl"   
             namespace="MyControl">  
           </add>  
         </controls>  
       </pages>  
      </system.web>  
    </configuration>  

測試控制元件

在解決方案下新建web專案,在web專案中新建apsx頁面,在頁面中引入自定義控制元件(注意,控制元件字首需要註冊)。比如以下頁面:

    <%@ Page Language="C#"AutoEventWireup="true"CodeBehind="Default.aspx.cs"Inherits="MyControl.Web._Default" %>  
    <%@ Register Assembly="MyControl"TagPrefix="f"Namespace="MyControl" %>  
    <!DOCTYPEhtmlPUBLIC "-//W3C//DTDXHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
       
    <htmlxmlnshtmlxmlns="http://www.w3.org/1999/xhtml">  
    <headrunatheadrunat="server">  
       <metahttp-equivmetahttp-equiv="Content-Type"content="text/html; charset=utf-8"/>  
       <title></title>  
    </head>  
    <body>  
       <formidformid="form1"runat="server">  
            <div>  
                <f:RedLabelTextf:RedLabelText="this is a test !"runat="server"></f:RedLabel>  
            </div>  
       </form>  
    </body>  
    </html>  

執行效果


資源:


相關推薦

asp.net 定義伺服器控制元件屬性 [Bindable(true)]...

自定義伺服器控制元件屬性的特性:Bindable這個特性表示屬性是否可以繫結一個有效資料來源。通常使用布林值進行設定。例如:Bindable(true)。如果使用值true標記屬性,表示該屬性可以繫結一個有效資料來源,且應引發該屬性的屬性更改通知。Browsable指定屬性是否應該在屬性瀏覽器中顯示,使用布林

ASP.NET 定義伺服器控制元件

 本文通過建立一個最簡單的伺服器控制元件,演示開發伺服器端控制元件的流程。  文章內容整理自MSDN的程式設計指南,原文地址在文章末尾的資源中。 本文建立一個簡單的伺服器控制元件,名為RedLabel。它的使用方式為: 文章內容 本文通過建立一個最簡單的伺服器控制元件,演示開發伺服器端控

不使用ASP.NET中的伺服器控制元件將如何上傳檔案?

遇到檔案的上傳時,可能會有大部分的開發者喜歡使用伺服器控制元件,雖然很方便,但是卻不能很好的控制,不具靈活性。 現給出例子,使用html標籤語言靈活的控制檔案的上傳。 1、html部分 <input type="file" id="uploadFile" name="uploa

ASP.NET】——WEB伺服器控制元件

WEB伺服器控制元件分類: 內部控制元件 列表控制元件 複雜控制元件 驗證控制元件 內部控制元件 ASP.NET引入一組稱為“內部控制元件”的新控制元件,專門用於ASP.NET 內部控制元件的使用方法與HTML控制元件相同,他們對映到HTML元素並通過

asp.net(c#)web伺服器控制元件,多選框checkboxlist控制元件

<%@ Page Language="c#" %> <script runat="server"> void Page_Load() { string msg = "You have selected the following items:<b

ASP.NET定義Web伺服器控制元件-Button控制元件

using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Web; usin

Asp.net定義控制元件事件

下面總結處理回發事件,必須要做的步驟 (1)繼承並實現IPostBackEventHandler介面的RaisePostBackEvent方法 (2)為表單元素定義UniqueID,以與IPostBa

ASP.NET中使用定義驗證控制元件(原作)

   asp.net 1.1中,有不少驗證控制元件,大大方便了我們,但有的時候,當需要做特殊的驗證時,還會覺得不夠用的,於是我們可以用自定義驗證控制元件CustomValidator,要使用這個控制元件,必須在服務端寫相應的事件,格式如下:Sub FunctionName(s

ASP.NET MVC 中建立定義 HtmlHelper 控制元件

概述 在ASP.NET MVC框架中已經封裝了很多基於Html標準的Html控制元件,我們可以方便的使用這些控制元件輸出想要的內容,使開發變得快捷。 例如ASP.NET MVC框架包括以下設定標準的HTML控制元件(部分控制元件): Html.ActionLink()H

asp.net中的html控制元件點選事件與伺服器控制元件點選事件的不同

ASP.NET中Onclick和OnserverClick事件的區別 對於伺服器按鈕控制元件(即<asp:Button>型別的按鈕): 伺服器響應事件:OnClick 客戶端響應屬性:OnClientClick 對於html按鈕控制元件(即<input t

asp.net定義錯誤頁面

未處理 範圍 user height you 調用 accept tom 頁眉   ASP.NET 提供三種用於在出現錯誤時捕獲和響應錯誤的主要方法:Page_Error 事件、Application_Error 事件以及應用程序配置文件 (Web.config)。   如

WinForm中使用定義Tooltip控制元件

private ToolTip tooltipCtr; 建構函式中: 隱藏預設的Tooltip:this.ShowCellToolTips = false; this.tooltipCtr = new ToolTip(); 設定停留時間(還有許多其他時間設定):thi

定義控制元件 實現一個繞圓圈的箭頭

自定義的類 import android.content.Context; import android.content.res.TypedArray; import android.graphics.Canvas; import android.graphics.Color; import

Android UI-定義日曆控制元件

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

定義titilbar控制元件

自定義titilbar控制元件 自定義佈局 <?xml version="1.0" encoding="utf-8"?> <ImageView android:id="@+id/imageView1" android:layout_width=

asp.net 如何獲取html控制元件select

只有設定了 runat="server" ,在後臺才可以訪問。示例:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transition

asp.net定義錯誤資訊處理

customErrors Asp.Net級別的錯誤處理程式,只處理Asp.Net應用丟擲的異常(404,403,500。。) 在IIS7+的伺服器依然可用(IIS7之前就引進了) 靜態檔案(如.jpg,.htm,.js等)不會被處理 放在System.Web節點 httpErrors

android開發:定義組合控制元件

內容介紹 本文記錄,自定義組合控制元件,為了可以程式碼複用,減少程式碼量 配置控制元件屬性檔案 開啟res/values/目錄下的arss.xml檔案,新增下面屬性程式碼,如果沒有建立arrs.xml檔案。 <?xml version="1.0" enc

android定義開關控制元件-SlideSwitch

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

android 多功能定義畫板控制元件(用於解決特定需求)

在專案中需要做一個可以自定義軌跡,但始終只有一條線,並且支援撤銷(撤銷單位為MotionEvent的down事件到up事件),還要支援動畫預覽等功能,最重要的是能夠按照間隔畫素來獲取所有點的座標,用於專案的其他功能。 整體的思路 1.專案中的應用場景需要畫板是一個圓形的,這個好實現用canv