Welcome 微信登录

首页 / 网页编程 / ASP.NET / ASP.NET自定义控件组件开发 第二章 继承WebControl的自定义控件(一)

ASP.NET自定义控件组件开发 第二章 继承WebControl的自定义控件(一)2011-10-04 博客园 小洋到现在为止,我已经写了三篇关于自定义控件开发的文章,很感谢大家的支持!不知道大家对我讲的 方式有什么好的建议,我尽量使自定义控件的技术让更多的程序员同胞接受。好了,开发开始了!

本章还是延续上章的例子,开发一个CreditCardForm控件。

其实本章也不难,相信大家看完后,也觉得很简单!

我们首先开谈谈继承Control和WebControl的区别:其实二者最大的区别就是在,如果我们开发的控件 继承WebControl,那么我们的控件就支持更多的CSS样式。而继承于Control的自定义控件的样式相对就少 些。

其实还有一个区别就在开发的规范上。我们来简单的看看上一章的自定义控件的代码,主要来看看 Render方法中的代码:大家只扫一眼就可以了。

1 protected override void Render(HtmlTextWriter writer)2 {3 //显示table标记4 writer.AddStyleAttribute(HtmlTextWriterStyle.Width, "287px");5 writer.AddStyleAttribute(HtmlTextWriterStyle.Height, "128px");6 writer.AddStyleAttribute(HtmlTextWriterStyle.BorderWidth, "0");7 writer.AddAttribute(HtmlTextWriterAttribute.Id, "mytable");8 writer.RenderBeginTag(HtmlTextWriterTag.Table);9 10 //显示table类的标记 包含 tr ,td 还有一些textbox,下拉框等 11 writer.RenderBeginTag(HtmlTextWriterTag.Tr); 12 13 writer.RenderBeginTag(HtmlTextWriterTag.Td); 14 writer.Write(PaymentMethodText); 15 writer.RenderEndTag(); 16 17 writer.RenderBeginTag(HtmlTextWriterTag.Td); 18 writer.AddAttribute(HtmlTextWriterAttribute.Name, "PaymentMethod"); 19 writer.AddAttribute(HtmlTextWriterAttribute.Id, "PaymentMethod"); 20 writer.AddStyleAttribute(HtmlTextWriterStyle.Width, "100%"); 21 writer.RenderBeginTag(HtmlTextWriterTag.Select); 22 23 writer.AddAttribute(HtmlTextWriterAttribute.Value, "0"); 24 writer.RenderBeginTag(HtmlTextWriterTag.Option); 25 writer.Write("Master"); 26 writer.RenderEndTag(); 27 28 writer.AddAttribute(HtmlTextWriterAttribute.Value, "1"); 29 writer.RenderBeginTag(HtmlTextWriterTag.Option); 30 writer.Write("Visa"); 31 writer.RenderEndTag(); 32 33 writer.RenderEndTag(); 34 writer.RenderEndTag(); 35 writer.RenderEndTag(); 36 37 writer.RenderBeginTag(HtmlTextWriterTag.Tr); 38 writer.RenderBeginTag(HtmlTextWriterTag.Td); 39 writer.Write(CreditCardNoText); 40 writer.RenderEndTag(); 41 42 writer.RenderBeginTag(HtmlTextWriterTag.Td); 43 writer.AddAttribute(HtmlTextWriterAttribute.Type, "text"); 44 writer.AddAttribute(HtmlTextWriterAttribute.Name, "CreditCardNo"); 45 writer.AddAttribute(HtmlTextWriterAttribute.Id, "CreditCardNo"); 46 writer.RenderBeginTag(HtmlTextWriterTag.Input); 47 writer.RenderEndTag(); 48 writer.RenderEndTag(); 49 writer.RenderEndTag(); 50 51 writer.RenderBeginTag(HtmlTextWriterTag.Tr); 52 writer.RenderBeginTag(HtmlTextWriterTag.Td); 53 writer.Write(CardholderNameText); 54 writer.RenderEndTag(); 55 56 writer.RenderBeginTag(HtmlTextWriterTag.Td); 57 writer.AddAttribute(HtmlTextWriterAttribute.Type, "text"); 58 writer.AddAttribute(HtmlTextWriterAttribute.Name, "CardholderName"); 59 writer.AddAttribute(HtmlTextWriterAttribute.Id, "CardholderName"); 60 writer.RenderBeginTag(HtmlTextWriterTag.Input); 61 writer.RenderEndTag(); 62 writer.RenderEndTag(); 63 writer.RenderEndTag(); 64 65 writer.RenderBeginTag(HtmlTextWriterTag.Tr); 66 writer.RenderBeginTag(HtmlTextWriterTag.Td); 67 writer.Write(ExpirationDateText); 68 writer.RenderEndTag(); 69 70 writer.RenderBeginTag(HtmlTextWriterTag.Td); 71 writer.AddAttribute(HtmlTextWriterAttribute.Name, "Month"); 72 writer.AddAttribute(HtmlTextWriterAttribute.Id, "Month"); 73 writer.RenderBeginTag(HtmlTextWriterTag.Select); 74 for (int month = 1; month < 13; month++) 75 { 76 writer.AddAttribute(HtmlTextWriterAttribute.Value, month.ToString()); 77 writer.RenderBeginTag(HtmlTextWriterTag.Option); 78 writer.Write(month.ToString()); 79 writer.RenderEndTag(); 80 } 81 82 writer.RenderEndTag(); 83 84 writer.Write("&nbsp"); 85 86 writer.AddAttribute(HtmlTextWriterAttribute.Name, "Year"); 87 writer.AddAttribute(HtmlTextWriterAttribute.Id, "Year"); 88 writer.RenderBeginTag(HtmlTextWriterTag.Select); 89 90 for (int year =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 98 writer.RenderEndTag(); 99100 writer.RenderEndTag();101 writer.RenderEndTag();102103104 writer.RenderBeginTag(HtmlTextWriterTag.Tr);105 writer.AddAttribute(HtmlTextWriterAttribute.Colspan, "2");106 writer.AddAttribute(HtmlTextWriterAttribute.Align, "center");107 writer.RenderBeginTag(HtmlTextWriterTag.Td);108 writer.AddAttribute(HtmlTextWriterAttribute.Type, "submit");109 writer.AddAttribute(HtmlTextWriterAttribute.Value, SubmitButtonText);110 writer.RenderBeginTag(HtmlTextWriterTag.Input);111 writer.RenderEndTag();112 writer.RenderEndTag();113 writer.RenderEndTag();114115 //table的结束标记116 writer.RenderEndTag();117118119120121 }