最近正在学写自定义控件,不怕见笑,把自己的第一个简单的控件贴上来,顺便加上了几句注释,如果有理解不对或不明白的地方,欢迎留言!
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
![]()
namespace TestLib
{
/// <summary>
/// WebCustomControl1 的摘要说明。
/// </summary>
[DefaultProperty("Text"),
ToolboxData("<{0}:ConfirmButton runat=server></{0}:ConfirmButton>")]
//将WebCustomControl1 该为ConfirmButton
//这样使得aspx页面显示的该控件xml代码标识显示“<cc1:ConfirmButton …> …</cc1: ConfirmButton>”。
![]()
public class ConfirmButton : System.Web.UI.WebControls.Button//将System.Web.UI.WebControls.WebControl改为直接继承Button控件
{
private string text;
[Bindable(true),
Category("Appearance"),
![]()
DefaultValue("")]
![]()
public new string Text//这里重新 new 了Text,(我尝试使用overrid 但是好想对属性不起作用)
{
get
{
return text;
}
set
{
text = value;
}
}
private string _confirmMessage = "Is OK?";
[Bindable(true),
Category("Appearance"),
DefaultValue("Is OK?")]
public string ConfirmMessage
{
![]()
get
![]()
{
![]()
return _confirmMessage;
![]()
}
![]()
set
![]()
{
![]()
_confirmMessage = value;
![]()
}
![]()
}
![]()
/// <summary>
/// 将此控件呈现给指定的输出参数。
/// </summary>
/// <param name="output"> 要写出到的 HTML 编写器 </param>
protected override void Render(HtmlTextWriter output)
{
base.Text=Text;//把new Text重新绑定到button.text
base.Attributes.Add("OnClick","return confirm('"+this._confirmMessage+"');");//添加OnClick 属性/方法
base.Render(output);//重新输出
}
}
}
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
namespace TestLib
{
/// <summary>
/// WebCustomControl1 的摘要说明。
/// </summary>
[DefaultProperty("Text"),
ToolboxData("<{0}:ConfirmButton runat=server></{0}:ConfirmButton>")]
//将WebCustomControl1 该为ConfirmButton
//这样使得aspx页面显示的该控件xml代码标识显示“<cc1:ConfirmButton …> …</cc1: ConfirmButton>”。
public class ConfirmButton : System.Web.UI.WebControls.Button//将System.Web.UI.WebControls.WebControl改为直接继承Button控件
{
private string text;
[Bindable(true),
Category("Appearance"), 
DefaultValue("")] 
public new string Text//这里重新 new 了Text,(我尝试使用overrid 但是好想对属性不起作用)
{
get
{
return text;
}
set
{
text = value;
}
}
private string _confirmMessage = "Is OK?";
[Bindable(true),
Category("Appearance"),
DefaultValue("Is OK?")]
public string ConfirmMessage
{
get
{
return _confirmMessage;
}
set
{
_confirmMessage = value;
}
}
/// <summary>
/// 将此控件呈现给指定的输出参数。
/// </summary>
/// <param name="output"> 要写出到的 HTML 编写器 </param>
protected override void Render(HtmlTextWriter output)
{
base.Text=Text;//把new Text重新绑定到button.text
base.Attributes.Add("OnClick","return confirm('"+this._confirmMessage+"');");//添加OnClick 属性/方法
base.Render(output);//重新输出
}
}
}


浙公网安备 33010602011771号