比如
using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Collections.Specialized;namespace Controls.MyControl
{
/// <summary>
/// WebCustomControl5 的摘要说明。
/// </summary>
public class WebCustomControl5 : System.Web.UI.WebControls.WebControl,System.Web.UI.IPostBackDataHandler
{
//实现一个共有构造寒暑,它将调用基类构造函数,来指定服务器控件应该输出一个input元素
public WebCustomControl5():base("input")
{} public String Text
{
get
{
return (String)ViewState["Text"];
}
set
{
ViewState["Text"] = value;
}
} //定义一个EventHandler类型的公有事件
public event EventHandler TextChanged; //使用一个NameValueCollection传递在表单中提交的所有回送数据
public virtual bool LoadPostData(string postDataKey,NameValueCollection postCollection)
{ String presentValue = Text;
String postedValue = postCollection[postDataKey]; if (presentValue == null || !presentValue.Equals(postedValue))
{
Text = postedValue;
return true;
}
return false;
}
//由于在LoadData中引发事件会引起不可预知的结果,所以一定要在RaisePostDataChangedEvent方法中引发事件
public virtual void RaisePostDataChangedEvent()
{
OnTextChanged(EventArgs.Empty);
}
//要引发事件的派生来能够简单地重写OnTextChanged方法来捕捉事件
protected virtual void OnTextChanged(EventArgs e)
{
if (TextChanged != null)
TextChanged(this,e);
} protected override void AddAttributesToRender(HtmlTextWriter output)
{
base.AddAttributesToRender(output);
output.AddAttribute(HtmlTextWriterAttribute.Name,UniqueID);
output.AddAttribute(HtmlTextWriterAttribute.Type,"input"); if(this.Text!=null)
output.AddAttribute("value",this.Text);
}
}
}
继承了System.Web.UI.WebControls.WebControl类和System.Web.UI.IPostBackDataHandler接口,但是不能继承多个类,可以继承多个接口
using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Collections.Specialized;namespace Controls.MyControl
{
/// <summary>
/// WebCustomControl5 的摘要说明。
/// </summary>
public class WebCustomControl5 : System.Web.UI.WebControls.WebControl,System.Web.UI.IPostBackDataHandler
{
//实现一个共有构造寒暑,它将调用基类构造函数,来指定服务器控件应该输出一个input元素
public WebCustomControl5():base("input")
{} public String Text
{
get
{
return (String)ViewState["Text"];
}
set
{
ViewState["Text"] = value;
}
} //定义一个EventHandler类型的公有事件
public event EventHandler TextChanged; //使用一个NameValueCollection传递在表单中提交的所有回送数据
public virtual bool LoadPostData(string postDataKey,NameValueCollection postCollection)
{ String presentValue = Text;
String postedValue = postCollection[postDataKey]; if (presentValue == null || !presentValue.Equals(postedValue))
{
Text = postedValue;
return true;
}
return false;
}
//由于在LoadData中引发事件会引起不可预知的结果,所以一定要在RaisePostDataChangedEvent方法中引发事件
public virtual void RaisePostDataChangedEvent()
{
OnTextChanged(EventArgs.Empty);
}
//要引发事件的派生来能够简单地重写OnTextChanged方法来捕捉事件
protected virtual void OnTextChanged(EventArgs e)
{
if (TextChanged != null)
TextChanged(this,e);
} protected override void AddAttributesToRender(HtmlTextWriter output)
{
base.AddAttributesToRender(output);
output.AddAttribute(HtmlTextWriterAttribute.Name,UniqueID);
output.AddAttribute(HtmlTextWriterAttribute.Type,"input"); if(this.Text!=null)
output.AddAttribute("value",this.Text);
}
}
}
继承了System.Web.UI.WebControls.WebControl类和System.Web.UI.IPostBackDataHandler接口,但是不能继承多个类,可以继承多个接口
可以从一个类和多个接口继承