技术成就梦想

知道用户需求,做到专注!c#,donet,Frameworks,UML,面向对象,设计模式!
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

ASP.NET 自定义控件

Posted on 2010-04-20 09:47  我不是高手  阅读(250)  评论(0编辑  收藏  举报

什么也不说了,直接看代码就搞定了。
using System;
using System.ComponentModel;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace UserControlTools
{
    [DefaultProperty("Text"), ToolboxData("<{0}:Tools runat=server></{0}:Tools>")]

    public partial class Tools : System.Web.UI.WebControls.WebControl
    {
        private string _cssClass;

        private Button btnAdd = new Button();
        private Button btnEdit = new Button();
        private Button btnSave = new Button();
        private Button btnDel = new Button();
        private Button btnSearch = new Button();
        private Button btnExport = new Button();
        //The ass button
        private Button btnAss = new Button();
        //The desc button
        private Button btnDesc = new Button();

        private Button btnBak1 = new Button();
        private Button btnBak2 = new Button();
        private System.Web.UI.WebControls.Panel pnlFrame = new System.Web.UI.WebControls.Panel();

        #region Set Controls visible
        [Description("定义按钮是否可见")]
        private bool _btnAddVisible = true;
        private bool _btnEditVisible = true;
        private bool _btnSaveVisible = true;
        private bool _btnDelVisible = true;
        private bool _btnSearchVisible = true;
        private bool _btnExportVisible = true;
        private bool _btnAssVisible = true;
        private bool _btnDescVisible = true;

        private bool _btnBak1Visible = false;
        private bool _btnBak2Visible = false;

        public bool btnAddVisible
        {
            get
            {
                return _btnAddVisible;
            }
            set
            {
                _btnAddVisible = value;
            }
        }
        public bool btnEditVisible
        {
            get
            {
                return _btnEditVisible;
            }
            set
            {
                _btnEditVisible = value;
            }
        }
        public bool btnSaveVisible
        {
            get
            {
                return _btnSaveVisible;
            }
            set
            {
                _btnSaveVisible = value;
            }
        }
        public bool btnDelVisible
        {
            get
            {
                return _btnDelVisible;
            }
            set
            {
                _btnDelVisible = value;
            }
        }
        public bool btnSearchVisible
        {
            get
            {
                return _btnSearchVisible;
            }
            set
            {
                _btnSearchVisible = value;
            }
        }
        public bool btnExportVisible
        {
            get
            {
                return _btnExportVisible;
            }
            set
            {
                _btnExportVisible = value;
            }
        }
        public bool btnAssVisible
        {
            get
            {
                return this._btnAssVisible;
            }
            set
            {
                this._btnAssVisible = value;
            }
        }
        public bool btnDescVisible
        {
            get
            {
                return this._btnDescVisible;
            }
            set
            {
                this._btnDescVisible = value;
            }
        }
        public bool btnBak1Visible
        {
            get
            {
                return this._btnBak1Visible;
            }
            set
            {
                this._btnBak1Visible = value;
            }
        }
        public bool btnBak2Visible
        {
            get
            {
                return this._btnBak2Visible;
            }
            set
            {
                this._btnBak2Visible = value;
            }
        }
        #endregion

        #region Set Controls text
        private string _addText = "Add";
        private string _editText = "Edit";
        private string _saveText = "Save";
        private string _delText = "Del";
        private string _searchText = "Search";
        private string _exportText = "Export";

        private string _assText = "Ass";
        private string _descText = "Desc";

        private string _bak1Text = "Back1";
        private string _bak2Text = "Back2";


        public string FirstButtonText
        {
            get
            {
                return this._addText;
            }
            set
            {
                this._addText = value;
            }
        }
        public string SecondButtonText
        {
            get
            {
                return this._editText;
            }
            set
            {
                this._editText = value;
            }
        }
        public string ThreadButtonText
        {
            get
            {
                return this._saveText;
            }
            set
            {
                this._saveText = value;
            }
        }
        public string ForthButtonText
        {
            get
            {
                return this._delText;
            }
            set
            {
                this._delText = value;
            }
        }
        public string FifthButtonText
        {
            get
            {
                return this._searchText;
            }
            set
            {
                this._searchText = value;
            }
        }
        public string SixthButtonText
        {
            get
            {
                return this._exportText;
            }
            set
            {
                this._exportText = value;
            }
        }
        public string SeventhText
        {
            get
            {
                return this._assText;
            }
            set
            {
                this._assText = value;
            }
        }
        public string EiththText
        {
            get
            {
                return this._descText;
            }
            set
            {
                this._descText = value;
            }
        }

        public string NinethText
        {
            get
            {
                return this._bak1Text;
            }
            set
            {
                this._bak1Text = value;
            }
        }
        public string TenthText
        {
            get
            {
                return this._bak2Text;
            }
            set
            {
                this._bak2Text = value;
            }
        }
        #endregion

        #region Control events
        [Description("定义按钮事件")]
        public event EventHandler btnAdd_OnClick;
        public event EventHandler btnEdit_OnClick;
        public event EventHandler btnSave_OnClick;
        public event EventHandler btnDel_OnClick;
        public event EventHandler btnSearch_OnClick;
        public event EventHandler btnExport_Onclick;

        public event EventHandler btnAss_Onclick;
        public event EventHandler btnDesc_Onclick;
        public event EventHandler btnBak1_Onclick;
        public event EventHandler btnBak2_Onclick;
        #endregion

        #region Set Controls css
        [Description("按钮样式")]
        public override string CssClass
        {
            get
            {
                return this._cssClass;
            }
            set
            {
                this._cssClass = value;
            }
        }
        #endregion

        #region Controls Width
        private Unit _addWidth = new Unit(75);
        private Unit _editWidth = new Unit(75);
        private Unit _saveWidth = new Unit(75);
        private Unit _delWidth = new Unit(75);
        private Unit _searchWidth = new Unit(75);
        private Unit _exportWidth = new Unit(75);

        private Unit _assWidth = new Unit(75);
        private Unit _descWidth = new Unit(75);
        private Unit _bak1Width = new Unit(75);
        private Unit _bak2Width = new Unit(75);

        public Unit AddButtonWidth
        {
            get
            {
                return  this._addWidth;
            }
            set
            {
                this._addWidth = value;
            }
        }
        public Unit EditButtonWidth
        {
            get
            {
                return this._editWidth;
            }
            set
            {
                this._editWidth = value;
            }
        }
        public Unit SaveButtonWidth
        {
            get
            {
                return this._saveWidth;
            }
            set
            {
                this._saveWidth = value;
            }
        }
        public Unit DelButtonWidth
        {
            get
            {
                return this._delWidth;
            }
            set
            {
                this._delWidth = value;
            }
        }
        public Unit SearchButtonWidth
        {
            get
            {
                return this._searchWidth;
            }
            set
            {
                this._searchWidth = value;
            }
        }
        public Unit ExportButtonWidth
        {
            get
            {
                return this._exportWidth;
            }
            set
            {
                this._exportWidth = value;
            }
        }
        public Unit AssButtonWidth
        {
            get
            {
                return this._assWidth;
            }
            set
            {
                this._assWidth = value;
            }
        }
        public Unit DescButtonWidth
        {
            get
            {
                return this._descWidth;
            }
            set
            {
                this._descWidth = value;
            }
        }
        public Unit Bak1ButtonWidth
        {
            get
            {
                return this._bak1Width;
            }
            set
            {
                this._bak1Width = value;
            }
        }
        public Unit Bak2ButtonWidth
        {
            get
            {
                return this._bak2Width;
            }
            set
            {
                this._bak2Width = value;
            }
        }

        #endregion

        #region Set controls property
        private void SetControlProperty()
        {
            this.btnAdd.Text = this._addText;
            this.btnAdd.CssClass = _cssClass;
            this.btnAdd.Width = this._addWidth;
            this.btnAdd.Visible = this._btnAddVisible;

            this.btnEdit.Text = this._editText;
            this.btnEdit.CssClass = _cssClass;
            this.btnEdit.Visible = this._btnEditVisible;
            this.btnEdit.Width = this._editWidth;

            this.btnSave.Text = this._saveText;
            this.btnSave.CssClass = _cssClass;
            this.btnSave.Visible = this._btnSaveVisible;
            this.btnSave.Width = this._saveWidth;

            this.btnDel.Text = this._delText;
            this.btnDel.CssClass = _cssClass;
            this.btnDel.Visible = this._btnDelVisible;
            this.btnDel.Width = this._delWidth;

            this.btnSearch.Text = this._searchText;
            this.btnSearch.CssClass = _cssClass;
            this.btnSearch.Visible = this._btnSearchVisible;
            this.btnSearch.Width = this._saveWidth;

            this.btnExport.Text = this._exportText;
            this.btnExport.CssClass = _cssClass;
            this.btnExport.Visible = this._btnExportVisible;
            this.btnExport.Width = this._exportWidth;

            this.btnAss.Text = this._assText;
            this.btnAss.CssClass = _cssClass;
            this.btnAss.Visible = this._btnAssVisible;
            this.btnAss.Width = this._assWidth;

            this.btnDesc.Text = this._descText;
            this.btnDesc.CssClass = _cssClass;
            this.btnDesc.Visible = this._btnDescVisible;
            this.btnDesc.Width = this._descWidth;

            this.btnBak1.Text = this._bak1Text;
            this.btnBak1.CssClass = _cssClass;
            this.btnBak1.Visible = this._btnBak1Visible;
            this.btnBak1.Width = this._bak1Width;

            this.btnBak2.Text = this._bak2Text;
            this.btnBak2.CssClass = _cssClass;
            this.btnBak2.Visible = this._btnBak2Visible;
            this.btnBak2.Width = this._bak2Width;
        }
        #endregion

        #region Constructor
        public Tools()
        {           
            this.btnAdd.ID = "btn_UserControl_Add";           
            this.btnAdd.Click += new EventHandler(this.btnAddClick);
           
            this.btnAdd.ID = "btn_UserControl_Edit";   
            this.btnEdit.Click += new EventHandler(this.btnEditClick);
           
            this.btnAdd.ID = "btn_UserControl_Save";   
            this.btnSave.Click += new EventHandler(this.btnSaveClick);
           
            this.btnAdd.ID = "btn_UserControl_Del";       
            this.btnDel.Click += new EventHandler(this.btnDelClick);

            this.btnAdd.ID = "btn_UserControl_Search";       
            this.btnSearch.Click += new EventHandler(this.btnSearchClick);

            this.btnExport.ID = "btn_UserControl_Export";   
            this.btnExport.Click += new EventHandler(this.btnExport_Click);

            this.btnAss.ID = "btn_UserControl_Ass";
            this.btnAss.Click += new EventHandler(this.btnAss_Click);

            this.btnDesc.ID = "btn_UserControl_Desc";
            this.btnDesc.Click += new EventHandler(this.btnDesc_Click);

            this.btnBak1.ID = "btn_UserControl_Bak1";
            this.btnBak1.Click += new EventHandler(this.btnBak1_Click);

            this.btnBak2.ID = "btn_UserControl_Bak2";
            this.btnBak2.Click += new EventHandler(this.btnBak2_Click);

            this.Controls.Add(this.btnAdd);
            this.Controls.Add(this.btnEdit);
            this.Controls.Add(this.btnSave);
            this.Controls.Add(this.btnDel);
            this.Controls.Add(this.btnSearch);
            this.Controls.Add(this.btnExport);
            this.Controls.Add(this.btnAss);
            this.Controls.Add(this.btnDesc);
            this.Controls.Add(this.btnBak1);
            this.Controls.Add(this.btnBak2);
        }
        #endregion

        #region override render
        protected override void Render(System.Web.UI.HtmlTextWriter output)
        {
            this.SetControlProperty();

            this.pnlFrame.RenderBeginTag(output);

            if (this._btnAssVisible)
            {
                this.btnAss.RenderControl(output);
                output.Write("&nbsp;");
            }
            if (this._btnDescVisible)
            {
                this.btnDesc.RenderControl(output);
                output.Write("&nbsp;");
            }
            if (this._btnAddVisible)
            {
                this.btnAdd.RenderControl(output);
                output.Write("&nbsp;");
            }
            if (this._btnEditVisible)
            {
                this.btnEdit.RenderControl(output);
                output.Write("&nbsp;");
            }
            if (this._btnSaveVisible)
            {
                this.btnSave.RenderControl(output);
                output.Write("&nbsp;");
            }
            if (this._btnDelVisible)
            {
                this.btnDel.RenderControl(output);
                output.Write("&nbsp;");
            }
            if (this._btnSearchVisible)
            {
                this.btnSearch.RenderControl(output);
                output.Write("&nbsp;");
            }
            if (this._btnExportVisible)
            {
                this.btnExport.RenderControl(output);
                output.Write("&nbsp;");
            }
            if (this._btnBak1Visible)
            {
                this.btnBak1.RenderControl(output);
                output.Write("&nbsp;");
            }
            if (this._btnBak2Visible)
            {
                this.btnBak2.RenderControl(output);
                output.Write("&nbsp;");
            }

            this.pnlFrame.RenderEndTag(output);
        }
        #endregion

        #region Button events
        [Description("按钮事件")]
        private void btnAddClick(object sender, EventArgs e)
        {
            EventArgs args = new EventArgs();
            if (this.btnAdd_OnClick != null)
            {
                this.btnAdd_OnClick(this.btnAdd, args);
            }
        }

        private void btnEditClick(object sender, EventArgs e)
        {
            EventArgs args = new EventArgs();
            if (this.btnEdit_OnClick != null)
            {
                this.btnEdit_OnClick(this.btnAdd, args);
            }
        }

        private void btnSaveClick(object sender, EventArgs e)
        {
            EventArgs args = new EventArgs();
            if (this.btnSave_OnClick != null)
            {
                this.btnSave_OnClick(this.btnAdd, args);
            }
        }

        private void btnDelClick(object sender, EventArgs e)
        {
            EventArgs args = new EventArgs();
            if (this.btnDel_OnClick != null)
            {
                this.btnDel_OnClick(this.btnAdd, args);
            }
        }

        private void btnSearchClick(object sender, EventArgs e)
        {
            EventArgs args = new EventArgs();
            if (this.btnSearch_OnClick != null)
            {
                this.btnSearch_OnClick(this.btnAdd, args);
            }
        }

        private void btnExport_Click(object sender, EventArgs e)
        {
            EventArgs args = new EventArgs();
            if (this.btnExport_Onclick != null)
            {
                this.btnExport_Onclick(this.btnExport, args);
            }
        }

        private void btnAss_Click(object sender, EventArgs e)
        {
            EventArgs args = new EventArgs();
            if (this.btnAss_Onclick != null)
            {
                this.btnAss_Onclick(this.btnAss, args);
            }
        }

        private void btnDesc_Click(object sender, EventArgs e)
        {
            EventArgs args = new EventArgs();
            if (this.btnDesc_Onclick != null)
            {
                this.btnDesc_Onclick(this.btnDesc, args);
            }
        }

        private void btnBak1_Click(object sender, EventArgs e)
        {
            EventArgs args = new EventArgs();
            if (this.btnBak1_Onclick != null)
            {
                this.btnBak1_Onclick(this.btnBak1, args);
            }
        }

        private void btnBak2_Click(object sender, EventArgs e)
        {
            EventArgs args = new EventArgs();
            if (this.btnBak2_Onclick != null)
            {
                this.btnBak2_Onclick(this.btnBak2, args);
            }
        }
        #endregion
    }
}