webcontrol的使用下.docx
《webcontrol的使用下.docx》由会员分享,可在线阅读,更多相关《webcontrol的使用下.docx(11页珍藏版)》请在冰豆网上搜索。
webcontrol的使用下
ASP.NET自定义控件组件开发第二章继承WebControl的自定义控件(下)
上一主题:
ASP.NET自定义控件组件开发第二章继承WebControl的自定义控件(上)
下一主题:
ASP.NET深入浅出系列2-页面生命周期详解
下面就写了RenderContent方法,不难,只记住这个方法的职责:
显示最外层标记的内容:
如下:
1protectedoverridevoidRenderContents(HtmlTextWriterwriter)
2 {
3 writer.RenderBeginTag(HtmlTextWriterTag.Tr);
4 writer.RenderBeginTag(HtmlTextWriterTag.Td);
5 writer.Write(PaymentMethod);
6 writer.RenderEndTag();
7
8 writer.RenderBeginTag(HtmlTextWriterTag.Td);
9
10 writer.AddAttribute(HtmlTextWriterAttribute.Id,PaymentMethodListId);
11 writer.AddAttribute(HtmlTextWriterAttribute.Name,PaymentMethodListName);
12 writer.AddStyleAttribute(HtmlTextWriterStyle.Width,"100%");
13 writer.RenderBeginTag(HtmlTextWriterTag.Select);
14
15 writer.AddAttribute(HtmlTextWriterAttribute.Value,"0");
16 writer.RenderBeginTag(HtmlTextWriterTag.Option);
17 writer.Write("Master");
18 writer.RenderEndTag();
19
20 writer.AddAttribute(HtmlTextWriterAttribute.Value,"1");
21 writer.RenderBeginTag(HtmlTextWriterTag.Option);
22 writer.Write("Visa");
23 writer.RenderEndTag();
24
25 writer.RenderEndTag();
26
27 writer.RenderEndTag();
28 writer.RenderEndTag();
29//****************************************************************************
30 writer.RenderBeginTag(HtmlTextWriterTag.Tr);
31 writer.RenderBeginTag(HtmlTextWriterTag.Td);
32 writer.Write(CreditCardNo);
33 writer.RenderEndTag();
34
35 writer.RenderBeginTag(HtmlTextWriterTag.Td);
36 writer.AddAttribute(HtmlTextWriterAttribute.Id,CreditCardNoTextId);
37 writer.AddAttribute(HtmlTextWriterAttribute.Name,CreditCardNoTextName);
38 writer.AddAttribute(HtmlTextWriterAttribute.Type,"text");
39 writer.RenderBeginTag(HtmlTextWriterTag.Input);
40 writer.RenderEndTag();
41
42 writer.RenderEndTag();
43 writer.RenderEndTag();
44//**************************************************************************************
45
46 writer.RenderBeginTag(HtmlTextWriterTag.Tr);
47 writer.RenderBeginTag(HtmlTextWriterTag.Td);
48 writer.Write(CardholderName);
49 writer.RenderEndTag();
50
51 writer.RenderBeginTag(HtmlTextWriterTag.Td);
52 writer.AddAttribute(HtmlTextWriterAttribute.Name,CardholderNameTextName);
53 writer.AddAttribute(HtmlTextWriterAttribute.Id,CardholderNameTextId);
54 writer.AddAttribute(HtmlTextWriterAttribute.Type,"text");
55 writer.RenderBeginTag(HtmlTextWriterTag.Input);
56 writer.RenderEndTag();
57
58 writer.RenderEndTag();
59 writer.RenderEndTag();
60//***************************************************************************************
61
62 writer.RenderBeginTag(HtmlTextWriterTag.Tr);
63 writer.RenderBeginTag(HtmlTextWriterTag.Td);
64 writer.Write(ExpirationDate);
65 writer.RenderEndTag();
66
67 writer.RenderBeginTag(HtmlTextWriterTag.Td);
68 writer.AddAttribute(HtmlTextWriterAttribute.Name,MonthListName);
69 writer.AddAttribute(HtmlTextWriterAttribute.Id,MonthListId);
70 writer.RenderBeginTag(HtmlTextWriterTag.Select);
71
72 for(intmonth=1;month<13;month++)
73 {
74 writer.AddAttribute(HtmlTextWriterAttribute.Value,month.ToString());
75 writer.RenderBeginTag(HtmlTextWriterTag.Option);
76 writer.Write(month.ToString());
77 writer.RenderEndTag();
78 }
79 writer.RenderEndTag();
80
81 /////////////////////////////////////
82
83 writer.Write(" ");
84
85 /////////////////////////////////////
86 writer.AddAttribute(HtmlTextWriterAttribute.Name,YearListName);
87 writer.AddAttribute(HtmlTextWriterAttribute.Id,YearListId);
88 writer.RenderBeginTag(HtmlTextWriterTag.Select);
89
90 for(intyear=2008;year<2015;year++)
91 {
92 writer.AddAttribute(HtmlTextWriterAttribute.Value,year.ToString());
93 writer.RenderBeginTag(HtmlTextWriterTag.Option);
94 writer.Write(year.ToString());
95 writer.RenderEndTag();
96 }
97 writer.RenderEndTag();
98
99 writer.RenderEndTag();
100 writer.RenderEndTag();
101//*****************************************************************************
102
103 writer.RenderBeginTag(HtmlTextWriterTag.Tr);
104 writer.AddAttribute(HtmlTextWriterAttribute.Colspan,"2");
105 writer.AddAttribute(HtmlTextWriterAttribute.Align,"center");
106 writer.RenderBeginTag(HtmlTextWriterTag.Td);
107 writer.AddAttribute(HtmlTextWriterAttribute.Name,SubmitButtonName);
108 writer.AddAttribute(HtmlTextWriterAttribute.Value,SubmitButtonText);
109 writer.AddAttribute(HtmlTextWriterAttribute.Id,SubmitButtonId);
110 writer.AddAttribute(HtmlTextWriterAttribute.Type,"submit");
111 writer.RenderBeginTag(HtmlTextWriterTag.Input);
112 writer.RenderEndTag();
113
114 writer.RenderEndTag();
115 writer.RenderEndTag();
116
117//******************************************************************************
118
119
120 }
这样就完了,大家看看上面的代码,很熟悉吧,是啊,只是把我们之前的代码分割开了,写在不同的地方!
最后的那个RendEndTag(),你不写!
因为,你override那个TagKey时,就已经调用了结束标记的方法。
这样,一个继承WebControl的控件就完了!
好了,写完了:
完整的代码如下:
1usingSystem;
2usingSystem.Collections.Generic;
3usingSystem.Text;
4usingSystem.Web;
5usingSystem.Web.UI;
6usingSystem.Web.UI.WebControls;
7
8namespaceCreditCardForm
9{
10 publicclassCreditCardForm5:
WebControl
11 {
12 #region重写包含标记
13
14 protectedoverrideStyleCreateControlStyle()
15 {
16 returnnewTableStyle(ViewState);
17 }
18
19 protectedoverrideHtmlTextWriterTagTagKey
20 {
21 get
22 {
23 returnHtmlTextWriterTag.Table;
24 }
25 }
26
27 //publicvirtualstringBackImageUrl
28 //{
29 // get
30 // {
31 // return((TableStyle)ControlStyle).BackImageUrl;
32 // }
33 // set
34 // {
35 // ((TableStyle)ControlStyle).BackImageUrl=value;
36 // }
37 //}
38
39
40 #endregion
41 #regionID
42 protectedvirtualstringPaymentMethodListId
43 {
44 get
45 {
46 return"PaymentMethod";
47 }
48 }
49
50 protectedvirtualstringCreditCardNoTextId
51 {
52 get
53 {
54 return"CreditCardNo";
55 }
56 }
57
58 protectedvirtualstringCardholderNameTextId
59 {
60 get
61 {
62 return"CardholderName";
63 }
64 }
65
66 protectedvirtualstringMonthListId
67 {
68 get
69 {
70 return"Month";
71 }
72 }
73
74 protectedvirtualstringYearListId
75 {
76 get
77 {
78 return "Year";
79 }
80 }
81
82 protectedvirtualstringSubmitButtonId
83 {
84 get
85 {
86 return"Submit";
87 }
88 }
89
90 #endregion
91 #regionname
92 protectedvirtualstringPaymentMethodListName
93 {
94 get
95 {
96 return"PaymentMethod";
97 }
98 }
99
100 protectedvirtualstringCreditCardNoTextName
101 {
102 get
103 {
104 return"CreditCardNo";
105 }
106 }
107
108 protectedvirtualstringCardholderNameTextName
109 {
110 get
111 {
112 return"CardholderName";
113 }
114 }
115
116 protectedvirtualstringMonthListName
117 {
118 get
119 {
120 return"Month";
121 }
122 }
123
124 protectedvirtualstringYearListName
125 {
126 get
127 {
128 return"Year";
129 }
130 }
131
132 protectedvirtualstringSubmitButtonName
133 {
134 get
135 {
136 return"Sumit";
137 }
138 }
139 #endregion
140
141 #region 属性
142 publicvirtualstringPaymentMethod
143 {
144 get
145 {
146 returnViewState["PaymentMethod"]!
=null?
(string)ViewState["PaymentMethod"]:
"支付方式";
147
148 }
149 set
150 {
151 ViewState["PaymentMethod"]=value;
152 }
153 }
154
155 publicvirtualstringCreditCardNo
156 {
157 get
158 {
159 returnViewState["CreditCardNo"]!
=null?
(string)ViewState["CreditCardNo"]:
"信用卡号";
160 }
161 set
162 {
163 ViewState["CreditCardNo"]=value;
164 }
165 }
166
167 publicvirtualstringCardholderName
168 {
169 get
170 {
171 returnViewState["CardholderName"]!
=null?
(string)ViewState["CardholderName"]:
"持卡人";
172 }
173 set
174 {
175 ViewState["CreditCardName"]=value;
176 }
177 }
178
179 publicvirtualstringExpirationDate
180 {
181 get
182 {
183 returnViewState["ExpirationDate"]!
=null?
(string)ViewState["ExpirationDate"]:
"过期时间";
184 }
185 set
186 {
187 ViewState["ExpirationDate"]=value;
188 }
189 }
190
191 publicvirtualstringSubmitButtonText
192 {
193 get
194 {
195 returnViewState["SubmitButtonText"]!
=null?
(string)ViewState["SubmitButtonText"]:
"提交";
196 }
197 set
198 {
199 ViewState["SubmitButtonText"]=value;
200 }
201
202 }
203 #endregion
204 protectedoverridevoidRenderContents(HtmlTextWriterwriter)
205 {
206 writer.RenderBeginTag(HtmlTextWriterTag.Tr);
207 writer.RenderBeginTag(HtmlTextWriterTag.Td);
208 writer.Write(PaymentMethod);
209 writer.RenderEndTag();
210
211 writer.RenderBeginTag(HtmlTextWriterTag.Td);
212
213 writer.AddAttribute(HtmlTextWriterAttribute.Id,PaymentMethodListId);
214 writer.AddAttribute(HtmlTextWriterAttribute.Name,PaymentMethodListName);
215 writer.AddStyleAttribute(HtmlTextWriterStyle.Width,"100%");
216 writer.RenderBeginTag(HtmlTextWriterTag.Select);
217
218 write