学习这件事,我喜欢带着问题来做.在我学习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>");
}
}
}
上面这段代码,解释了我心中的两个疑问:自定义控件开发,并不难嘛!遗憾的是,这种编程工作,并非是所见即所得的.
当然,后面一个问题,是出于本人的懒惰特性.相信列位都有所同感,自从有了可视化编程,尽管无数前辈和达人,都不止一次的教导我们,不可过于依赖这种环境,但每一个初学者,都很难从可视化的温柔乡中抽身而出.