ASP.NET提供自定義控件的機制,本文記敘生成一個簡單自定義控件的方法。
一般地,Web頁面處理發生錯誤時,可以在頁面上顯示錯誤信息,也可以通過javascript的alert提示信息。在ASP.NET中實現alert的一種方法是定義自定義控件。 小雞射手的PromptControl實現如下,實在算是最簡單的自定義控件啦,:-)
[DefaultProperty("Message"), ToolboxData("<{0}:PromptControl runat=server>")] [Designer(typeof(PromptControlDesigner))] public class PromptControl : System.Web.UI.WebControls.WebControl { private string message;
[Bindable(true), Category("Appearance"), DefaultValue("")] public string Message { get { return message; } set { message = value; } } protected override void Render(HtmlTextWriter output) { if(Message!=null && Message.Length>0) { output.Write(" "); } } }
public class PromptControlDesigner : ControlDesigner { public override string GetDesignTimeHtml() { return "PromptControl"; } }
生成控件后,可以將其加到工具箱中,自定義控件和任何其他控件一樣可以Drag到設計窗口,并可以在屬性窗口中編輯Message屬性,當然在程序中設置Message也完全可以啦。對于較復雜的自定義控件,主要是增加PostBack事件的處理,包括:
GetPostBackClientEvent()生成client的postback的script 如以前的blog用戶控件中定義事件描述定義事件 實現RaisePostBackEvent()方法。
|