在这里贴出来,希望大虾指教,也和其他的初学者做一个交流——我总觉得教程上写的太复杂,自己的思路反而倒是很简单的;
另外,顺便可以看作是自己的成长道路把。
首先,说一下关于ASP.NET控件的基本知识,还有关于C#的基本知识(关于我自己所了解的和理解的);
关于ASP.NET的控件,对于我这样一个从头到尾都是面向结构出身(ASP)的人,再没能理解以前几乎对此一窍不通,这也正是想要学习ASP.NET但是却喊了将近两年的口号去学ASP和网页平面设计的原因...那么这些控件到底是些什么东西呢?怎么用呢?
我最近大量的接触到相关的东西,包括JavaScript和Flash的AS,以及结合C#入门书籍,总结出一个概念:
1、控件 = 实例化的对象 < 类
2、关于实例化的对象;
通常在一个常用的page里面大约是这样的:
page 是最顶层的对象,它有很多属性(例如颜色)和相关的唯一标识(id or name);
form 表单是在page之下的一个对象,同样有属性;
input 表单里面的各种元素是form下的对象,也是有各种属性的;
这样我们要通过程序来控制的时候可以这样来表示全页面这个唯一的特定的元素,例如在javascript里面是这样的:
document.formName.inputUserName.Value
表示当前文档中一个叫做formName的表单中一个inputName文本输入框的Value(值);
document.formName.inputUserName.focus()
()这里表示inputName这个实例对象的一个方法(操作它的函数),方法名为:focus;
同样的道理,页面所有的元素,包括table、tr、td、a、font……统统都可以算是实例化的对象;最后,实例化主要是指可以直接操作的,不是抽象的;
在一个javaScript+html的页面里,通常通过加在page里面的js程序来实现对page下每一个元素的控制,除了js语言本身的函数以外,用js编写的各种函数(通常可见是放在head里面的)都可以视作对象的方法(),从而实现页面在本地的动态化;
而js+html归根到底是本地动态,可以算得上是伪动态的,因为大量的数据总是需要被保护起来放在服务器上的;
ASP.NET控件强大的威力之一就显现在这里;
不管是HTML控件,还是WEB控件,在HTML里面除了标签写法不一样以外,最重要的是这样几个属性,例如:
id作为唯一的表示决定了这个空间的调用名称,而runat="server"则表示这个控件(实例化的对象)可以通过在服务器段的程序来控制;
·这里和javascript+HTML的重要区别在于:ASP.NET的全部程序代码都是放在服务器段的,HTML代码原样发送到客户端浏览器,而HTML/WEB空间则在处理以后才发给浏览器,这表示安全、保密,并且ASP.NET的语言是强大的VB、JS、C++以及最新的C#,这些从一开始就是面向对象的语言可以为ASP.NET提供无比强大的功能,最后客户端的程序是连接着数据库,是真正意义上的动态更新——不仅于此,ASP.NET的精髓不在于ASP.NET的页面,而在于基于XML的Web Service,这表示一个站点是可以和全世界所有的站点连接起来动态更新的,这已经把动态的概念提到了无以复加的地步。
如果了解javascript,这里举一个简单的相同功能的例子,来表示它们之间的相似和不通,它们同样在进入一个页面的时候更改了页面的某个元素的值:
javascript -在本地运行,数据是固定的;
C#.NET -程序在服务端,本地只有html代码
<%@ Page Language="C#" %>
<script runat="server">
void Page_Load(object sender, EventArgs e){
demotext.Text="ok"; //这个赋值在服务端,可以调用数据库
}
</script>
<body>
<asp:Label id="demotext" runat="server"></asp:Label>
</body>
输出到浏览器的源代码是:
3、关于类;
C#是一个完全面向对象的语言,它的全部操作都是基于这些对象的,例如对对象的属性的操作,已经对象的方法(即操作它的函数);换句话而言,C#的核心结构就是类,大的类移植到顶层的System,小到属性本身也可以定义为一个类,这种设计使得C#的各种实例化对象可以由点到线,由线而面,有面及体,无限的交叉和互相组希⑶以诿恳桓鲆桓鑫⒐凵隙加凶挪畈欢嗟谋嘈捶椒ā?
ASP.NET里的各种控件,就是这样的一种比较微观的类。
类的概念就像是中国古人所说的阴阳,仅此而已,整个世界除了阴阳就再也没有别的了,从大的到小的都是阴阳相合而生;在C#的世界里类就是阴阳。
对于C#语言本身其实和以前面向结构的语言没有太大区别——这里指出一点,面向结构可以算是C#中微观中的微观,无论C#怎么面向对象,再深到了最后都是0101010001这样的代码,再往下可就直接涉及到电子运动了:o
C#语言本身不外乎是数据类型和控制语句,int,string,或者if else都是很常见的东西basic时代就被了解的东西了吧?因此C#真正入门还是要在类上的理解。
这样,我们从具体说到小的,从小的说到大的,最后一通百通,无论大小,都以类这个概念概括完,而在ASP.NET里面的各种控件,不外乎是从类而实例化的对象,类可以怎么玩儿,控件就可以怎么玩儿。
那么到此为止,我总算是开了点窍,ASP.NET的大门向我开了一个缝,在了解了这些概念,并且研究了C#语言关于类的一些知识以后,我的第一个ASP.NET的page很快就出炉了。