DefaultEvent( "ClickNext" ):指定组件的默认事件
DefaultProperty( "NextText" ):指定组件的默认属性
Bindable(true or false):指定属性是否通常用于绑定
Category( "Appearance" ):指定其属性或事件将显示在可视化设计器中的类别
DefaultValue( typeof( Color ) , "" ):指定属性的默认值
Description( "The background color"):指定属性或事件的说明
TypeConverter(typeof( WebColorConverter )):指定用作此特性所绑定到的对象的转换器的类型
Browsable(true or false):指定一个属性或事件是否应显示在“属性”窗口中
DesignerSerializationVisibility( DesignerSerializationVisibility.Hidden ):指定在设计时序列化组件上的属性时所使用的持久性类型
==========================================================================
简单控件 事件
<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->
usingSystem;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.ComponentModel;

namespaceMyControls

{
/**////<summary>
///SummarydescriptionforMyEventManager.
///</summary>
[DefaultEvent("NextClick"),DefaultProperty("text")]
publicclassMyEventManager:System.Web.UI.WebControls.WebControl,IPostBackEventHandler

{
publiceventEventHandlerNextClick;
publiceventEventHandlerPreClick;
[Bindable(true),Category("Behavior"),DefaultValue(""),Description("text")]
publicstringtext

{
get

{
return((string)ViewState["text"]==null)?string.Empty:(string)ViewState["text"];
}
set

{
ViewState["text"]=value;
}
}
protectedvirtualvoidOnNextClick(EventArgse)

{
if(NextClick!=null)

{
NextClick(this,EventArgs.Empty);
}
}
protectedvirtualvoidOnPreClick(EventArgse)

{
if(PreClick!=null)

{
PreClick(this,EventArgs.Empty);
}
}
voidIPostBackEventHandler.RaisePostBackEvent(stringEventArguments)

{
if(EventArguments=="Pre")

{
OnPreClick(EventArgs.Empty);
Page.Trace.Warn("PreButtonClick");
}
else

{
OnNextClick(EventArgs.Empty);
Page.Trace.Warn("NextButtonClick");
}
}
[Bindable(true),
Category("Appearance"),
DefaultValue("")]

protectedoverridevoidRender(HtmlTextWriteroutput)

{
//output.Write(Text);
this.Attributes.AddAttributes(output);
output.AddAttribute(HtmlTextWriterAttribute.Onclick,Page.GetPostBackEventReference(this,"Pre"));
output.AddAttribute("language","javascript");
output.RenderBeginTag(HtmlTextWriterTag.Button);
output.Write("Pre");
output.RenderEndTag();
output.AddAttribute(HtmlTextWriterAttribute.Onclick,Page.GetPostBackEventReference(this,"Next"));
output.AddAttribute("language","javascript");
output.RenderBeginTag(HtmlTextWriterTag.Button);
output.Write("Next");
output.RenderEndTag();

base.Render(output);
}
}
}
本文介绍了一个自定义的ASP.NET Web控件MyEventManager,该控件实现了IPostBackEventHandler接口,提供了两个事件NextClick和PreClick,并定义了默认属性text。此外,还展示了如何使用HtmlTextWriter渲染按钮并触发这两个事件。

被折叠的 条评论
为什么被折叠?



