navbutton代码
using system.web.ui.webcontrols;
using system.componentmodel;
namespace webcontroltestitem
{
/// <summary>
/// webcustomcontrol 的摘要说明。
/// </summary>
[defaultevent("clicknext"),
defaultproperty("nexttext"),
toolboxdata("<{0}:simplebutton runat=server></{0}:simplebutton>")
]
public class simplebutton:webcontrol,ipostbackeventhandler
{
private string _nexttext;
private string _previoustext;
[bindable(true),
category("外观"),
defaultvalue("next"),
description("显示在按钮上的文字")
]
public virtual string nexttext
{
get{ return((_nexttext==null)?string.empty:_nexttext);}
set{_nexttext=value;}
}
[bindable(true),
category("外观"),
defaultvalue("previous"),
description("显示在按钮上的文字")
]
public virtual string previoustext
{
get{ return((_previoustext==null)?string.empty:_previoustext);}
set{_previoustext=value;}
}
/*protected override htmltextwritertag tagkey
{
get { return htmltextwritertag.input;}
}
*/
//click事件的键
private static readonly object eventclicknext=new object();
private static readonly object eventclickpreivous=new object();
//事件属性
[category("操作"),description("按下时触发按钮单击事件")]
public event eventhandler clicknext
{
add{
events.addhandler(eventclicknext,value);
}
remove{events.removehandler(eventclicknext,value);}
}
[category("操作"),description("按下时触发按钮单击事件")]
public event eventhandler clickpreivous
{
add
{
events.addhandler(eventclickpreivous,value);
}
remove{events.removehandler(eventclickpreivous,value);}
}
protected virtual void onclicknext(eventargs e)
{
eventhandler clickhandler=(eventhandler)events[eventclicknext];
if(clickhandler!=null)
clickhandler(this,e);
}
protected virtual void onclickpreivous(eventargs e)
{
eventhandler clickhandler=(eventhandler)events[eventclickpreivous];
if(clickhandler!=null)
clickhandler(this,e);
}
/*protected override void addattributestorender(htmltextwriter writer)
{
base.addattributestorender(writer);
writer.addattribute(htmltextwriterattribute.name,this.uniqueid);
writer.addattribute(htmltextwriterattribute.type,"submit");
writer.addattribute(htmltextwriterattribute.value,this.text);
}*/
#region ipostbackeventhandler 成员
public void raisepostbackevent(string eventargument)
{
// todo: 添加 simplebutton.raisepostbackevent 实现
if(eventargument=="下一步")
onclicknext(eventargs.empty);
if(eventargument=="上一步")
onclickpreivous(eventargs.empty);
}
#endregion
protected override void render(htmltextwriter writer)
{
if(page!=null)
page.verifyrenderinginserverform(this);
base.render (writer);