ImageVerifierCode 换一换
格式:DOCX , 页数:6 ,大小:74.41KB ,
资源ID:8216616      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8216616.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(webcontrol使用上.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

webcontrol使用上.docx

1、webcontrol使用上到现在为止,我已经写了三篇关于自定义控件开发的文章,很感谢大家的支持!不知道大家对我讲的方式有什么好的建议,我尽量使自定义控件的技术让更多的程序员同胞接受。好了,开发开始了!本章还是延续上章的例子,开发一个CreditCardForm控件。其实本章也不难,相信大家看完后,也觉得很简单!我们首先开谈谈继承Control和WebControl的区别:其实二者最大的区别就是在,如果我们开发的控件继承WebControl,那么我们的控件就支持更多的CSS样式。而继承于Control的自定义控件的样式相对就少些。其实还有一个区别就在开发的规范上。我们来简单的看看上一章的自定义控

2、件的代码,主要来看看Render方法中的代码:大家只扫一眼就可以了。1protectedoverridevoidRender(HtmlTextWriterwriter)23/显示table标记4writer.AddStyleAttribute(HtmlTextWriterStyle.Width,287px);5writer.AddStyleAttribute(HtmlTextWriterStyle.Height,128px);6writer.AddStyleAttribute(HtmlTextWriterStyle.BorderWidth,0);7writer.AddAttribute(Htm

3、lTextWriterAttribute.Id,mytable);8writer.RenderBeginTag(HtmlTextWriterTag.Table);910/显示table类的标记包含tr,td还有一些textbox,下拉框等11writer.RenderBeginTag(HtmlTextWriterTag.Tr);1213writer.RenderBeginTag(HtmlTextWriterTag.Td);14writer.Write(PaymentMethodText);15writer.RenderEndTag();1617writer.RenderBeginTag(Htm

4、lTextWriterTag.Td);18writer.AddAttribute(HtmlTextWriterAttribute.Name,PaymentMethod);19writer.AddAttribute(HtmlTextWriterAttribute.Id,PaymentMethod);20writer.AddStyleAttribute(HtmlTextWriterStyle.Width,100%);21writer.RenderBeginTag(HtmlTextWriterTag.Select);2223writer.AddAttribute(HtmlTextWriterAttr

5、ibute.Value,0);24writer.RenderBeginTag(HtmlTextWriterTag.Option);25writer.Write(Master);26writer.RenderEndTag();2728writer.AddAttribute(HtmlTextWriterAttribute.Value,1);29writer.RenderBeginTag(HtmlTextWriterTag.Option);30writer.Write(Visa);31writer.RenderEndTag();3233writer.RenderEndTag();34writer.R

6、enderEndTag();35writer.RenderEndTag();3637writer.RenderBeginTag(HtmlTextWriterTag.Tr);38writer.RenderBeginTag(HtmlTextWriterTag.Td);39writer.Write(CreditCardNoText);40writer.RenderEndTag();4142writer.RenderBeginTag(HtmlTextWriterTag.Td);43writer.AddAttribute(HtmlTextWriterAttribute.Type,text);44writ

7、er.AddAttribute(HtmlTextWriterAttribute.Name,CreditCardNo);45writer.AddAttribute(HtmlTextWriterAttribute.Id,CreditCardNo);46writer.RenderBeginTag(HtmlTextWriterTag.Input);47writer.RenderEndTag();48writer.RenderEndTag();49writer.RenderEndTag();5051writer.RenderBeginTag(HtmlTextWriterTag.Tr);52writer.

8、RenderBeginTag(HtmlTextWriterTag.Td);53writer.Write(CardholderNameText);54writer.RenderEndTag();5556writer.RenderBeginTag(HtmlTextWriterTag.Td);57writer.AddAttribute(HtmlTextWriterAttribute.Type,text);58writer.AddAttribute(HtmlTextWriterAttribute.Name,CardholderName);59writer.AddAttribute(HtmlTextWr

9、iterAttribute.Id,CardholderName);60writer.RenderBeginTag(HtmlTextWriterTag.Input);61writer.RenderEndTag();62writer.RenderEndTag();63writer.RenderEndTag();6465writer.RenderBeginTag(HtmlTextWriterTag.Tr);66writer.RenderBeginTag(HtmlTextWriterTag.Td);67writer.Write(ExpirationDateText);68writer.RenderEn

10、dTag();6970writer.RenderBeginTag(HtmlTextWriterTag.Td);71writer.AddAttribute(HtmlTextWriterAttribute.Name,Month);72writer.AddAttribute(HtmlTextWriterAttribute.Id,Month);73writer.RenderBeginTag(HtmlTextWriterTag.Select);74for(intmonth=1;month13;month+)7576writer.AddAttribute(HtmlTextWriterAttribute.V

11、alue,month.ToString();77writer.RenderBeginTag(HtmlTextWriterTag.Option);78writer.Write(month.ToString();79writer.RenderEndTag();808182writer.RenderEndTag();8384writer.Write( );8586writer.AddAttribute(HtmlTextWriterAttribute.Name,Year);87writer.AddAttribute(HtmlTextWriterAttribute.Id,Year);88writ

12、er.RenderBeginTag(HtmlTextWriterTag.Select);8990for(intyear=2008;year2015;year+)9192writer.AddAttribute(HtmlTextWriterAttribute.Value,year.ToString();93writer.RenderBeginTag(HtmlTextWriterTag.Option);94writer.Write(year.ToString();95writer.RenderEndTag();969798writer.RenderEndTag();99100writer.Rende

13、rEndTag();101writer.RenderEndTag();102103104writer.RenderBeginTag(HtmlTextWriterTag.Tr);105writer.AddAttribute(HtmlTextWriterAttribute.Colspan,2);106writer.AddAttribute(HtmlTextWriterAttribute.Align,center);107writer.RenderBeginTag(HtmlTextWriterTag.Td);108writer.AddAttribute(HtmlTextWriterAttribute

14、.Type,submit);109writer.AddAttribute(HtmlTextWriterAttribute.Value,SubmitButtonText);110writer.RenderBeginTag(HtmlTextWriterTag.Input);111writer.RenderEndTag();112writer.RenderEndTag();113writer.RenderEndTag();114115/table的结束标记116writer.RenderEndTag();117118119120121相信这段代码大家都和熟悉。在这段代码的作用主要显示了一个table

15、 以及table 之中的标记元素。如果一这个控件已经写好了,加入我们想要改改table的样式,如把border设为1,或者改变显示的颜色等,那么我们就要再次打开这段代码,修改代码。其实这就不好。为什么?其实这个方法中的代码做了四件事:1.显示控件最外层的包含标记,即table2.显示最外层标记的一些属性,如border.id等3.显示控件的主要内容 ,如,显示输入框,下拉框,按钮。4.显示控件最外层包含标记的结束标记。这样看来,这个方法的职责就有四个。大家应该还记得面向对象设计的原创:单一职责。虽然这个元素一般用在类上,但是我们更加要注意,这个原则用的宗旨:使对象只有一个变化的因素。这个原则也

16、用在方法的设计上。就是说,我们如果想要改变最外层标记table一些属性,我们就影响了其他三个职责。同理,我们想改变其他的元素或者内容,结果可想而知。为此,继承WebControl的控件就更加的规范和灵活:其实,继承于WebControl的控件的显示还是在Render方法中显示,只是这个Render方法已经不由我们来写了:如下:12protectedoverridevoidRender(HtmlTextWriterwriter)34RenderBeginTag(writer);5RenderContens(writer);6RenderEndTag(writer);78因为我们之前说,Rende

17、r方法的职责有四个。所以WebControl的Render方法就把这些职责分离了。以后我们能就可以独立的改变一个因素了。大家也许奇怪:不是说有四个职责吗,但是上面只是显示了三个方法,其实在RenderBeginTag()方法中包含显示最外层标记样式的方法。所以我们只要分别重写这三个方法,一个继承WebControl的自定义的控件就成了。不要怕,方法很多,但是很简单,而且代码我们都懂,之前差不多都讲了的。我想把写成后的控件给大家看看,让大家看下我们本章的目标:大家看见没有:是不是支持的样式多了!好了,我们来写吧:不难哦:)首先看看我们要的写方法以及他们的功能:protectedoverridev

18、oidRender(HtmlTextWriterwriter)/显示最外层包含标记开始的标记,即,显示RenderBeginTag(writer);/显示table标记内的内容,如等RenderContens(writer);/显示最外层包含标记结束标记/tableRenderEndTag(writer);现在的思路很清晰吧,首先来显示很简单,只要如下就可以了。1protectedoverrideHtmlTextWriterTagTagKey23get45returnHtmlTextWriterTag.Table;67不要奇怪,因为RenderBeginTag()方法内部实际是调用了这个属性来显示的最外层的包含标记的。好了,第一步就写完了啊!简答吧!下面来显示table的样式,因为我们的控件的最外层的标记是table,显示他的样式只要这样就OK了。1protectedoverrideStyleCreateControlStyle()23returnnewTableStyle(ViewState);4又写完了一部分。不难吧!接着看啊!如果你的最外层的标记是那么,上面的那个方法你都不用写

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1