扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:金属边缘 来源:天极开发 2007年11月6日
关键字: Windows
using System; using System.Collections.Generic; using System.ComponentModel; using System.Text; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace WebControlLibrary{ [DefaultEvent("Click")] [ToolboxData("<{0}:WebCustomControl runat=server></{0}:WebCustomControl>")] public class WebCustomControl : WebControl, IPostBackEventHandler { // 定义一个Click事件委托对象 private static readonly object EventClick = new object(); //实现Click事件属性 [Description("Click事件属性"), Category("Action") ] public event EventHandler Click { add { Events.AddHandler(EventClick, value); } remove { Events.RemoveHandler(EventClick, value); } } // 重写控件呈现方法RenderContents protected override void RenderContents(HtmlTextWriter output) { output.Write("<input type='submit' name=" + this.UniqueID + " value=请单击 />"); } //实现事件方法 protected virtual void OnClick(EventArgs e) { EventHandler clickHandler = (EventHandler)Events[EventClick]; if (clickHandler != null) { clickHandler(this, e); } } // 实现IPostBackEventHandler接口成员 void IPostBackEventHandler.RaisePostBackEvent(string eventArgument) { OnClick(EventArgs.Empty); } } } |
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <%@ Register TagPrefix="cc" Namespace="WebControlLibrary" Assembly="WebControlLibrary" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server"> void wcc1_Click(object sender, EventArgs e) { message.Text = "您刚才点击了上面的按钮"; } </script> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>捕获回传事件</title> </head> <body> <form id="form1" runat="server"> <center> <cc:WebCustomControl ID="wcc1" runat="server" OnClick="wcc1_Click" /> <br /> <br /> <asp:Label ID="message" runat="server"></asp:Label> </center> </form> </body> </html> |
图1 页面初始化效果图 图2 点击按钮后的效果图 |
//定义属性AutoPostBack public bool AutoPostBack{ set { this._autoPostBack = value; } get { return this._autoPostBack; } } //在Render方法中添加Page.GetPostBackEventReference()方法 protected override void Render(HtmlTextWriter output){ ...... if(this.AutoPostBack) { writer.WriteAttribute("ontextchanged","javascript:" + Page.GetPostBackEventReference(this)); } ...... } |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者