当前位置: 移动技术网 > IT编程>开发语言>.net > ASP.NET自定义Web服务器控件之Button控件

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

2017年12月12日  | 移动技术网IT编程  | 我要评论

陈二狗的妖孽人生520,堆栈溢出,男女人体艺术

本文实例讲述了asp.net自定义web服务器控件之button控件实现方法。分享给大家供大家参考。具体实现方法如下:

复制代码 代码如下:
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(); 
            } 
        } 
    } 
}

复制代码 代码如下:
<%@ 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>

复制代码 代码如下:
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程序设计有所帮助。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网