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()方法。
|