项目 HTML服务器控件 Web服务器控件



是否映射到

HTML标签
HTML标签存在一一对应的映射关系。runat=server属性把传统的HTML标签转换成服务器控件。这使得开发人员可以将ASP页面移植到ASP.NET平台上。 不直接映射到HTML标签,这使得可以开发人员可以使用第三方的控件


对象模型

使用HTML中心对象模型,在该模型中,控件包括一个关健字/值对的属性集合。 使用基于组件的对象模型,该模型要求使用一致对象类型。


是否能自适应输出

不能根据浏览器的不同,调整所输出HTML文档的显示效果 可以自动根据浏览器的不同,调整所输出HTML文档的显示效果

      asp.net之所以现在开发方便和快捷,关键是它有一组强大的控件库,包括web服务器控件,web用户控件,web自定义控件,html服务器控件和html控件等。这里我主要说说html控件、html服务器控件和web服务器控件的区别。
1、html控件:就是我们通常的说的html语言标记,这些语言标记在已往的静态页面和其他网页里存在,不能在服务器端控制的,只能在客户端通过javascript和vbscript等程序语言来控制。<input type="button" />
是Asp.net服务器控件,并且我们没有为其定义click,但是我们点击时,页面也会发回到服务器端。
    由此可见:Html标注和Html服务器控件的事件是由页面来触发的,而Asp.net服务器控件则是由页面把Form发回到服务器端,由服务器来处理。
4、下面我就结合我自己的测试来说明问题:
    这段代码是我放在repeat中的模板里的:其中DeleteCheck是一个js脚本函数,注意是用于是否发送到服务器端的,这里就不展示脚本代码:

/>

展现出来的html代码如下:

/>

可以看出以下几点:
1、当控件属性中有runat="server"时,生成的html控件时name和id发生的变化(.net Framework)。
2、当asp:button服务器按钮通过生成的页面后转化成类型为submit类型的Client控件。
3、当控件是html控件时通过生成的页面和原来的html代码完全一样(理由上面已经说明)。
另外:我还测试了把这段代码直接放到form标记中(不放到其他子标记中)如:

>

生成的html代码:

>

这里有可以看出几点:
    1、当html服务器控件在服务器端添加了服务器事件后生成的代码变为:onclick="_doPostBack()",实际上是调用脚本把整个窗体提交到服务器(如果没有添件服务器事件而只是添加了runat="server"是不会发送到服务器端的)这里注意如果要在html服务器控件中添加一个客户端事件如上面的:
<input runat="server" type="button" >,我将在第一时间内删除此文章!

相关文章: