自定义控件的onclientclick事件



我有一个div,里面有自定义控件

<div class="modal modal-medium" id="modal-default-email">
            <asp:DefaultMailMessage ID="DefaultMailMessageID" runat="server"   />
            <!-- /.modal-content -->
        </div>

我只想创建一个客户端点击事件。怎样分享你的想法。。。

您必须声明控制中的事件,实现用于处理回发事件的IPostBackEventHandler,并注册GetPostBackEventReference(即"Click")clint端,例如

或多或少就是

 using System.Web.UI.HtmlControls;
 public class MyControl : CompositeControl, IPostBackEventHandler
    {
        //Declare event
        public event EventHandler Click;
        protected override void CreateChildControls()
        {
            //Creante your control 
            HtmlGenericControl div = new HtmlGenericControl("div");
            //set your property
            //Set postback reference client-side
            div.Attributes.Add("onclick", Page.ClientScript.GetPostBackEventReference(this, "Click"));
         //Add control
         Controls.Add(div);
        }
        protected virtual void OnClick(EventArgs e)
        {
            if (((this.Click != null)))
            {
                this.Click.Invoke(this, e);
            }
        }
        public void RaisePostBackEvent(string eventArgument)
        {
            if ((object.ReferenceEquals(eventArgument, "Click")))
            {
                this.OnClick(EventArgs.Empty);
            }
        }
    }

你也看到了http://msdn.microsoft.com/en-us/library/aa719907(v=vs.71).aspx

最新更新