不要再拖别人的控件----2.帮前面的东东加个事件

1.输出几个小东西

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个按钮  到底哪个会触发事件, 还是整个控件回去触发事件。 然后你增加事件的时候 为什么双击控件不能给他增加事件....

  这些自己去看 看这个事件的流程。 我这里只给出参考代码

posted @ 2012-02-02 11:18  伤心木乃伊  阅读(409)  评论(0编辑  收藏  举报