zoukankan      html  css  js  c++  java
  • 不要再拖别人的控件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个按钮  到底哪个会触发事件, 还是整个控件回去触发事件。 然后你增加事件的时候 为什么双击控件不能给他增加事件....

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

  • 相关阅读:
    菜根谭#317
    菜根谭#316
    菜根谭#315
    菜根谭#314
    菜根谭#313
    菜根谭#312
    菜根谭#311
    菜根谭#310
    菜根谭#309
    Matlab xpC启动盘
  • 原文地址:https://www.cnblogs.com/sxmny/p/2335511.html
Copyright © 2011-2022 走看看