开发自定义控件样式(5)--webcontrol的独立方法与样式

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 JinXingWebControl
{
    [DefaultProperty("Text")]
    [ToolboxData("<{0}:Control5 runat=server></{0}:Control5>")]
    public class Control5 : WebControl
    {
        [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;
            }
        }

        private GridLines girdlines;
        private int cellpadding;
        private int cellspacing;
        private HorizontalAlign horizontalalign;
        private string backimageurl;

        public virtual GridLines Gridlines
        {
            get { return ((TableStyle)ControlStyle).GridLines; }
            set { ((TableStyle)ControlStyle).GridLines = value; }
        }

        public virtual int CellSpacing
        {
            get { return ((TableStyle)ControlStyle).CellSpacing; }
            set { ((TableStyle)ControlStyle).CellSpacing = value; }
        }

        public virtual int CellPadding
        {
            get { return ((TableStyle)ControlStyle).CellPadding; }
            set { ((TableStyle)ControlStyle).CellPadding = value; }
        }

        public virtual HorizontalAlign HorizontalAlign
        {
            get { return ((TableStyle)ControlStyle).HorizontalAlign; }
            set { ((TableStyle)ControlStyle).HorizontalAlign = value; }
        }
        public virtual string BackImageUrl
        {
            get { return ((TableStyle)ControlStyle).BackImageUrl; }
            set { ((TableStyle)ControlStyle).BackImageUrl = value; }
        }

        private string paymentMethodText = "Payment Method";
        private string creditCardNoText = "CreditCardNoText";
        private string cardHolderNameText = "CardHolderNameText";
        private string expirationDateText = "Expiration Date";
        private string submitButtonText = "Submit";


        [Browsable(true)]
        [Description("Gets and Sets the payment method")]
        [DefaultValueAttribute("Payment Method")]
        [CategoryAttribute("Appearance")]
        public virtual string PaymentMethodText
        {
            get { return this.paymentMethodText; }
            set { this.paymentMethodText = value; }
        }

        public virtual string CreditCardNoText
        {
            get { return this.creditCardNoText; }
            set { this.creditCardNoText = value; }
        }

        public virtual string CardHolderNameText
        {
            get { return this.cardHolderNameText; }
            set { this.cardHolderNameText = value; }
        }

        public virtual string ExpirationDataText
        {
            get { return this.expirationDateText; }
            set { this.expirationDateText = value; }
        }

        public virtual string SubmitButtonText
        {
            get { return this.submitButtonText; }
            set { this.submitButtonText = value; }
        }

        private string paymentselectname;

        public virtual string PaymentSelectName
        {
            get { return this.paymentselectname; }
            set { paymentselectname = value; }
        }

        private string paymentselectid;
        public virtual string PaymentSelctid
        {
            get { return this.paymentselectid; }
            set { paymentselectid = value; }
        }

        private string cardName;
        public virtual string CardName
        {
            get { return this.cardName; }
            set { cardName = value; }
        }

        private string cardid;
        public virtual string Cardid
        {
            get { return this.cardid; }
            set { cardid = value; }
        }

        private string cardhandername;
        public virtual string Cardhandname
        {
            get { return this.cardhandername; }
            set { cardhandername = value; }
        }

        private string cardhanderid;
        public virtual string Cardhanderid
        {
            get { return this.cardhanderid; }
            set { cardhanderid = value; }
        }

        private string year;
        public virtual string Year
        {
            get { return this.year; }
            set { year = value; }
        }
        private string month;
        public virtual string Month
        {
            get { return this.month; }
            set { month = value; }
        }
        private string yearid;
        public virtual string Yearid
        {
            get { return this.yearid; }
            set { yearid = value; }
        }
        private string monthid;
        public virtual string Monthid
        {
            get { return this.monthid; }
            set { monthid = value; }
        }


        protected override void RenderContents(HtmlTextWriter writer)
        {


            //1
            writer.RenderBeginTag(HtmlTextWriterTag.Tr);
            writer.RenderBeginTag(HtmlTextWriterTag.Td);
            writer.Write(PaymentMethodText);
            writer.RenderEndTag();
            writer.RenderBeginTag(HtmlTextWriterTag.Td);
            writer.AddAttribute(HtmlTextWriterAttribute.Name, PaymentSelectName);
            writer.AddAttribute(HtmlTextWriterAttribute.Id, PaymentSelctid);

            writer.RenderBeginTag(HtmlTextWriterTag.Select);

            writer.AddAttribute(HtmlTextWriterAttribute.Value, "0");
            writer.RenderBeginTag(HtmlTextWriterTag.Option);
            writer.Write("Visa");
            writer.RenderEndTag();
            writer.AddAttribute(HtmlTextWriterAttribute.Value, "1");
            writer.RenderBeginTag(HtmlTextWriterTag.Option);
            writer.Write("MasterCard");
            writer.RenderEndTag();

            writer.RenderEndTag();
            writer.RenderEndTag();
            writer.RenderEndTag();

            //2
            writer.RenderBeginTag(HtmlTextWriterTag.Tr);
            writer.RenderBeginTag(HtmlTextWriterTag.Td);
            writer.Write(CreditCardNoText);
            writer.RenderEndTag();
            writer.RenderBeginTag(HtmlTextWriterTag.Td);
            writer.AddAttribute(HtmlTextWriterAttribute.Name, CardName);
            writer.AddAttribute(HtmlTextWriterAttribute.Id, Cardid);

            writer.AddAttribute(HtmlTextWriterAttribute.Type, "text");
            writer.RenderBeginTag(HtmlTextWriterTag.Input);


            writer.RenderEndTag();
            writer.RenderEndTag();
            writer.RenderEndTag();


            //3
            writer.RenderBeginTag(HtmlTextWriterTag.Tr);
            writer.RenderBeginTag(HtmlTextWriterTag.Td);
            writer.Write(CardHolderNameText);
            writer.RenderEndTag();
            writer.RenderBeginTag(HtmlTextWriterTag.Td);
            writer.AddAttribute(HtmlTextWriterAttribute.Name, Cardhandname);
            writer.AddAttribute(HtmlTextWriterAttribute.Id, Cardhanderid);

            writer.AddAttribute(HtmlTextWriterAttribute.Type, "text");
            writer.RenderBeginTag(HtmlTextWriterTag.Input);

            writer.RenderEndTag();
            writer.RenderEndTag();
            writer.RenderEndTag();

            //4
            writer.RenderBeginTag(HtmlTextWriterTag.Tr);
            writer.RenderBeginTag(HtmlTextWriterTag.Td);
            writer.Write(ExpirationDataText);
            writer.RenderEndTag();
            writer.RenderBeginTag(HtmlTextWriterTag.Td);
            writer.AddAttribute(HtmlTextWriterAttribute.Name, Month);
            writer.AddAttribute(HtmlTextWriterAttribute.Id, Monthid);

            writer.RenderBeginTag(HtmlTextWriterTag.Select);

            for (int day = 1; day < 13; day++)
            {
                writer.AddAttribute(HtmlTextWriterAttribute.Value, day.ToString());
                writer.RenderBeginTag(HtmlTextWriterTag.Option);
                if (day < 10)
                {
                    writer.Write("0" + day.ToString());
                }
                else
                {
                    writer.Write(day.ToString());
                }

                writer.RenderEndTag();
            }

 

            writer.RenderEndTag();

            writer.AddAttribute(HtmlTextWriterAttribute.Name, Year);
            writer.AddAttribute(HtmlTextWriterAttribute.Id, Yearid);

            writer.RenderBeginTag(HtmlTextWriterTag.Select);

            for (int month = 2005; month < 2015; month++)
            {
                writer.AddAttribute(HtmlTextWriterAttribute.Value, month.ToString());
                writer.RenderBeginTag(HtmlTextWriterTag.Option);
                writer.Write(month.ToString());

                writer.RenderEndTag();
            }

 

            writer.RenderEndTag();

 

            writer.RenderEndTag();
            writer.RenderEndTag();

            //5
            writer.RenderBeginTag(HtmlTextWriterTag.Tr);
            writer.AddAttribute(HtmlTextWriterAttribute.Cols, "2");
            writer.AddAttribute(HtmlTextWriterAttribute.Align, "center");
            writer.RenderBeginTag(HtmlTextWriterTag.Td);

            writer.AddAttribute(HtmlTextWriterAttribute.Type, "submit");
            writer.AddAttribute(HtmlTextWriterAttribute.Value, SubmitButtonText);
            writer.RenderBeginTag(HtmlTextWriterTag.Input);
            writer.RenderEndTag();

            writer.RenderEndTag();
            writer.RenderEndTag();

 

 

        }
        protected override void Render(HtmlTextWriter writer)
        {
            RenderBeginTag(writer);
            RenderContents(writer);
            RenderEndTag(writer);
        }

        protected override HtmlTextWriterTag TagKey
        {
            get
            {
                return HtmlTextWriterTag.Table;
            }
        }

        public override void RenderBeginTag(HtmlTextWriter writer)
        {
            AddAttributesToRender(writer);
            if (TagKey != HtmlTextWriterTag.Unknown)
            {
                writer.RenderBeginTag(TagKey);
            }
            else
            {
                writer.RenderBeginTag(this.TagName);
            }
        }

        //重写改方法后 AddAttributesToRender 中 ControlStyle.AddAttributesToRender   中ControlStyle 将返回这个style
        //TableStyle 将包含 style中的所有属性,另外还包含 Gridlines,CellSpacing CessPadding,HorizontalAlign,BackImageUrl
        protected override Style CreateControlStyle()
        {
           return new TableStyle(ViewState);
            //使用自定义的样式
            // return new CustomTableStyle(ViewState);
        }
    }

    public enum BackImageReapeat
    {
    Repeat,RepeatX,RepeatY,NoRepeat,Inherit
    }

    public class CustomTableStyle:TableStyle
    {
        public CustomTableStyle(StateBag viewState):base(viewState)
        {
       
        }
        public BackImageReapeat BackImageRepeat
        {
            get { return ViewState["BackImageRepeat"] != null ? (BackImageReapeat)ViewState["BackImageRepeat"] : BackImageReapeat.NoRepeat; }
            set { ViewState["BackImageRepeat"] = value; }
        }
    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值