开始文章之前我先说一下,我写的文章里面有很多的概念是片面的,因为我觉得我们是做正式的开发的,不是咬文嚼字的。所以需要看正式定义的朋友可以买相关的书籍查看,或者g一下。在这里如果对于各位有误导的行为还请谅解。别过了1-2年突然弄清楚了再问候我长辈,这是不道德的。
开始。
此部分主要讲页面的控件。页面的控件分为两方面,一种是在aspnet模型下面的控件,另外一种是浏览器中展示出来的html所组成的dom控件。
先说aspnet控件,其实这个就是我们俗称的服务端控件,一般控件都会带上一个runat="server"属性。这部分的控件可以在服务端编程,就是在可以在Page中写c#代码控制它;那么一些html控件也可以加上runat=“server”属性,这个时候,对于这些html控件也可以使用后台编程的方式去控制它。但是这些控件都只能在特殊的工具中(一般是在vs环境中)才能被解析,你还能可视化,在一般浏览器中是无法直接呈现的。有的人就说了,我不是一运行,控件不是在浏览器中呈现了吗?搞搞清楚,你查看一下浏览器中呈现页面的源代码,那是html,不是你在环境中看到的那样,最简单的,你看看这个代码还有没有runat=“server”了?
再说说DOM控件,DOM控件其实就是一对html闭合的标签,形如<></>这样的。那么这些标签其实就可以看成DOM控件,特别是在js对于这些进行客户端编程的时候,你只能对此闭合标签做对象处理。
再来看看他们两者的关系。
刚刚说aspnet控件会被解析成html的dom控件。这是怎么回事呢?其实这就是aspnet的模型厉害的地方。现在姑且认为就是有一段程序把控件给html化了就可以了,具体的怎么html化的,大家可以查看一下msdn。那么既然aspnet控件被解析成html,那么他们之间肯定有关系了,比如这个aspnet控件会解析成什么html的dom控件,那个aspnet控件又会被解析成什么html的dom控件呢?一般情况下请看下表:
序号 | aspnet控件 | DOM控件/html标签 |
1 | textbox | input type=”text” |
2 | textbo密码框 | input type=“passowrd” |
3 | button | input type=“submit” |
4 | checkbox | input type=”checkbox” |
5 | checkboxlist | 总的先会是一个table,然后是input |
6 | datagrid | table,tr,td |
7 | datalist | table,tr,td |
8 | hyperlink | a |
9 | lable | div |
10 | file | input type=”file” |
11 | image | img |
12 | RadioButton | input type= radio |
13 | DropDownList | select |
差不多应该这些吧,如果后面aspnet又加了控件也无在乎就是一些dom控件的嵌套而已,最简单的就是,同志们可以拉一个控件,然后运行一下,查看一下页面中的源代码就可以知道aspnet和dom控件的一一对象关系了。记住这些对于以后的js编程有很大的益处,可以少走很多的弯路。
然后看编程,aspnet控件在服务器端,就是c#代码可以控制它,那么到了客户端,就是dom控件,这个只有js可以控制了,c#已经无法控制它了。这个也是编程的规则之一。
好下一回讲讲怎么写客户端的js控件DOM控件。