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; }
}
}
}