源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

ASP.NET自定义Web服务器控件之Button控件

  • 时间:2020-01-21 12:18 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:ASP.NET自定义Web服务器控件之Button控件
本文实例讲述了ASP.NET自定义Web服务器控件之Button控件实现方法。分享给大家供大家参考。具体实现方法如下:
[u]复制代码[/u] 代码如下:
using System;  using System.Collections.Generic;  using System.ComponentModel;  using System.Linq;  using System.Text;  using System.Web;  using System.Web.UI;  using System.Web.UI.WebControls;    //自定义web服务器button  namespace MyControls  {      [DefaultProperty("Text")]      [ToolboxData("<{0}:MyButton runat=server></{0}:MyButton>")]      public class MyButton : WebControl,IPostBackEventHandler      {          [Bindable(true)]          [Category("Appearance")]          [DefaultValue("")]          [Localizable(true)]          public string Text          {              get              {                  String s = (String)ViewState["Text"];                  return ((s == null) ? String.Empty : s);              }                set              {                  ViewState["Text"] = value;              }          }            [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]//生成属性时,按属性内部内容生成(例如在此控件里面(Size-Height,Size_Width))          //[PersistenceMode(PersistenceMode.InnerProperty)]//以子标签的形式显示(例如<Size Width="" Height=""/>)          public Size Size          {              get              {                  if (ViewState["Size"] == null) {                      ViewState["Size"] = new Size();                  }                  return (Size)ViewState["Size"];              }                set              {                  ViewState["Size"] = value;              }          }          //定义控件的标签形式          protected override HtmlTextWriterTag TagKey          {              get              {                  return HtmlTextWriterTag.Input;              }          }            //初始化          protected override void OnInit(EventArgs e)          {              this.Style.Add("width", Size.Width + "px");              this.Style.Add("height", Size.Height + "px");              this.Attributes.Add("type", "submit"); //提交按钮              this.Attributes.Add("value",Text);              this.Attributes.Add("name",this.UniqueID);//回发事件必须有的一个属性              base.OnInit(e);          }          //打印当前控件的内容          protected override void RenderContents(HtmlTextWriter output)          {              //output.Write(Text);          }                    public delegate void ClickHandle();          private object key=new object();          public event ClickHandle Click {              add {                  this.Events.AddHandler(key,value);              }              remove {                  this.Events.RemoveHandler(key, value);              }          }          //按钮的回发事件          public void RaisePostBackEvent(string eventArgument)          {              ClickHandle handle = (ClickHandle)base.Events[key];              if (handle != null) {                  handle();              }          }      }  }
[u]复制代码[/u] 代码如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>    <%@ Register assembly="MyControls" namespace="MyControls" tagprefix="cc1" %>    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">    <html xmlns="http://www.w3.org/1999/xhtml">  <head runat="server">      <title></title>  </head>  <body>      <form id="form1" runat="server">      <div>      <!--自定义服务器按钮控件-->          <cc1:MyButton ID="MyButton1" Size-Height="30" Size-Width="290" OnClick="btnSubmit" Text="我是一个单独的提交按钮(自定义服务器)" runat="server" />      </div>               </form>    </body>  </html>
[u]复制代码[/u] 代码如下:
using System;  using System.Collections.Generic;  using System.Linq;  using System.Web;  using System.Web.UI;  using System.Web.UI.WebControls;    public partial class _Default : System.Web.UI.Page  {      protected void Page_Load(object sender, EventArgs e)      {        }      //自定义服务器控件      protected void btnSubmit() {          Response.Write("我是自定义服务器控件的点击事件");      }  }
希望本文所述对大家的asp.net程序设计有所帮助。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部