2.帮前面的东东加个事件
不要再拖别人的控件,开发自己的控件让别人拖去吧。
本博客文章如没有说明 都属于原创。
还有不懂的加.net 高级QQ群 86594082 咨询
上次我们出了一个文本框和一个按钮, 现在我们帮按加个事件。 加个简单的按钮单击事件很简单,
1)继承IPostBackEventHandler接口 ,IPostBackEventHandler从字面上翻译就知道是 一个 回发事件接口
2) 然后实现接口的RaisePostBackEvent方法
namespace Mycontrol
{
[DefaultProperty("Text")]
[ToolboxData("<{0}:checkEmail runat=server ></{0}:checkEmail>")]
public class checkEmail : WebControl,IPostBackEventHandler
{
/// <summary>
/// 用视图存取值
/// </summary>
public string txtValue
{
get { return ViewState["txtvalue"] == null ? "" : ViewState["txtvalue"].ToString(); }
set { ViewState["txtvalue"] = value; }
}
public event EventHandler click;
public virtual void OnClick(EventArgs e)
{
if (click!=null)
{
click(this,e);
}
}
#region IPostBackEventHandler 成员
public void RaisePostBackEvent(string eventArgument)
{
OnClick(EventArgs.Empty);
}
#endregion
protected override void RenderContents(HtmlTextWriter writer)
{
//输出一个表格 表格中有个文本框和按钮
writer.AddAttribute(HtmlTextWriterAttribute.Border, "1px #CCC red");
//输出表格
writer.RenderBeginTag(HtmlTextWriterTag.Table);
//输出tr
writer.RenderBeginTag(HtmlTextWriterTag.Tr);
//输出td1
writer.RenderBeginTag(HtmlTextWriterTag.Td);
/*--------------------输出文本框----------------*/
writer.AddAttribute(HtmlTextWriterAttribute.Width, "100px");
writer.AddAttribute(HtmlTextWriterAttribute.Id, "txtEmailValue");
writer.AddAttribute(HtmlTextWriterAttribute.Type, "text");
// writer.AddAttribute(HtmlTextWriterAttribute.Name, );
writer.AddAttribute(HtmlTextWriterAttribute.Value, this.txtValue);
writer.RenderBeginTag(HtmlTextWriterTag.Input);
writer.RenderEndTag();
/*--------------------输出文本框 end----------------*/
//end 输出td1
writer.RenderEndTag();
//输出td2
writer.RenderBeginTag(HtmlTextWriterTag.Td);
/*--------------------输出按钮----------------*/
writer.AddAttribute(HtmlTextWriterAttribute.Width, "50px");
writer.AddAttribute(HtmlTextWriterAttribute.Type, "submit");
writer.AddAttribute(HtmlTextWriterAttribute.Name, "a");
writer.AddAttribute(HtmlTextWriterAttribute.Value, "check");
writer.RenderBeginTag(HtmlTextWriterTag.Input);
writer.RenderEndTag();
/*--------------------输出按钮 end---------------*/
/*--------------------输出按钮----------------*/
writer.AddAttribute(HtmlTextWriterAttribute.Width, "50px");
writer.AddAttribute(HtmlTextWriterAttribute.Type, "submit");
writer.AddAttribute(HtmlTextWriterAttribute.Name, this.UniqueID.ToString());
writer.AddAttribute(HtmlTextWriterAttribute.Value, "check");
writer.RenderBeginTag(HtmlTextWriterTag.Input);
writer.RenderEndTag();
/*--------------------输出按钮 end---------------*/
//end 输出td2
writer.RenderEndTag();
//end 输出tr
writer.RenderEndTag();
//end 输出表格
writer.RenderEndTag();
}
}
}
注意代码是写好了,无形中存在一些问题, 我放了2个按钮 到底哪个会触发事件, 还是整个控件回去触发事件。 然后你增加事件的时候 为什么双击控件不能给他增加事件....
这些自己去看 看这个事件的流程。 我这里只给出参考代码