学习这件事,我喜欢带着问题来做.在我学习ASP.NET中,遇到过很多的问题,这些问题不是大段的理论知识,不是复杂抽象的概念,而是细节上的小问题.相信初学者多多少少会碰到一些.后面的笔记里,我会将这些问题及答案原原本本的记录下来.若看到的人,觉得有所帮助,我就开心不已了.
第一个问题:为什么要自己开发服务器控件?为什么要学习服务器控件开发.
看到这里,各位看官可能已经觉得我废话连篇了.但是木有办法,本人就是这么个性格,原谅我的啰嗦吧.
话说,为什么要自己开发服务器控件,当然是因为自定义的控件老实,听话,能干活.个人觉得,写程序如带兵打仗,自己带出来的兵,自己才最了解的,用得才顺手.
那,列位看官要说,学习自定义控件的原因,就很清楚了,没必要有此一问了嘛!
这,则不然.所有的控件,其实都可以说是自定义的,只不过不是我自己定义的,而是别人定义的,学习自定义控件的过程中,我的第一个收益,是对已经封装好的ASP.NET控件有了更深的理解.所以,后面的学习,我要的不仅仅是写出自定义控件那么简单,一定要可以将控件掌控于胸.
啊...已有鸡蛋西红柿等物迎面扑来...我闪...我躲....
好吧,好吧.我们走一个先....
先来完成一个这样的自定义控件吧.看起来很简单吧~
下面是代码:(所有代码均为C#代码,开发环境为VS2010)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Web.UI; using System.Web.UI.WebControls; using System.ComponentModel; namespace myCtrlExce { public class My_Txtbtn:WebControl { protected override void Render(HtmlTextWriter writer) { writer.Write("<table style='width:400px;'>"); writer.Write("<tr>"); writer.Write("<td style='width:100px;'>我的名字</td>"); writer.Write("<td style='width:200px;'>"); writer.Write("<input type='text' />"); writer.Write("</td>"); writer.Write("<td style='width:100px;'>"); writer.Write("<input type='submit' />"); writer.Write("</td>"); writer.Write("</tr>"); writer.Write("</table>"); } } }
上面这段代码,解释了我心中的两个疑问:自定义控件开发,并不难嘛!遗憾的是,这种编程工作,并非是所见即所得的.
当然,后面一个问题,是出于本人的懒惰特性.相信列位都有所同感,自从有了可视化编程,尽管无数前辈和达人,都不止一次的教导我们,不可过于依赖这种环境,但每一个初学者,都很难从可视化的温柔乡中抽身而出.