类型可供选择的按钮自定义控件
using System;
using System.Collections.Generic;
using System.Text;
using System.Web.UI;
using System.ComponentModel;

namespace ComponentControl
{
    
public class Ctrl5:Control,IPostBackEventHandler
    
{
        
private static readonly object obj = new object();

        [Description(
"按钮显示的类型")]
        
public BtnType ButtonType
        
{
            
get return ViewState["ButtonType"== null ? BtnType.Button : (BtnType)ViewState["ButtonType"]; }
            
set { ViewState["ButtonType"= value; }
        }


        
//事件
        public virtual event EventHandler Click
        
{
            add 
{
                Events.AddHandler(obj, value);
            }

            remove
            
{
                Events.RemoveHandler(obj, value);
            }

        }


        
//控件重写
        protected override void Render(HtmlTextWriter writer)
        
{
            
if (ButtonType == BtnType.Button)
                writer.Write(
"<input type=submit name=" + this.UniqueID + " value=Button />");
            
else if (ButtonType == BtnType.LinkButton)
                writer.Write(
"<a href="+Page.GetPostBackClientHyperlink(this,"")+">Button</a>");
        }


        
IPostBackEventHandler 成员
    }


    
//按钮类型枚举
    public enum BtnType
    

        Button,
        LinkButton
    }

}


 posted on 2008-07-18 10:32  ︷起↘嚸.  阅读(139)  评论(0)    收藏  举报