html、html服务器控件和web服务器控件的区别

        asp.net 之所以现在开发方便和快捷,关键是它有一组强大的控件库,包括 web 服务器控件,web 用户控件,web 自定义控件,html 服务器控件和 html 控件等。这里我主要说说 html 控件、html 服务器控件和 web 服务器控件的区别。 
        1、html 控件:就是我们通常的说的 html 语言标记,这些语言标记在已往的静态页面和其他网页里存在,不能在服务器端控制的,只能在客户端通过 javascript 和 vbscript 等程序语言来控制。<input type="button" id="btn" value="button"/>
        2、html 服务器控件:其实就是 html 控件的基础上加上 runat="server"所构成的控件.它们的注意区别是运行方式不同,html 控件运行在客户端,而 html 服务器控件是运行在服务器端的参考其他资料是这样说的: 当 ASP.NET 网页执行时,会检查标注有无 runat  属性,如果标注没有设定,那么 Html 标注就会被视为符串,并被送到字符串流等待送到客户端,客户端的浏览器会对其进行解释;如果 Html 标注有设定 runat="server" 属性,Page 对象会将该控件放入控制器,服务器端的代码就能对其进行控制,等到控制执行完毕后再将 Html 服务器控件的执行结果转换成 Html 标注,然后当成字符串流发送到客户端进行解释<input id="Button" type="button" value="button" runat="server" />
        3、web 服务器控件:也称 asp.net 服务器控件,是 Web Form 编程的基本元素,也是 asp.net 所特有的。它会按照 client 的情况产生一个或者多个 html 控件,而不是直接描述 html 元素。如: <asp:Button ID="Button2" runat="server" Text="Button"/>那么它和 html 服务器控件有什么区别呢?参照其他网页的资料看法如下:
       1)、Asp.net 服务器控件提供更加统一的编程接口,如每个 Asp.net 服务器控件都有 Text 属性。
       2)、隐藏客户端的不同,这样程序员可以把更多的精力放在业务上,而不用去考虑客户端的浏览器是 ie 还是 firefox,或者是移动设备。
       3)、Asp.net 服务器控件可以保存状态到 ViewState 里,这样页面在从客户端回传到服务器端或者从服务器端下载到客户端的过程中都可以保存。
       4)、事件处理模型不同,Html 标注和 Html 服务器控件的事件处理都是在客户端的页面上,而 Asp.net 服务器控件则是在服务器上,举例来说:
    <input id="Button4" type="button" value="button" runat="server"/>是 Html 服务器控件,此时我们点击此按钮,页面不会回传到服务器端,原因是我们没有为其定义鼠标点击事件。
    <input id="Button4" type="button" value="button" runat="server"  />我们为 Html 服务器控件添加了一个 onserverclick 事件,点击此按钮页面会发回服务器端,并执行 test(object sender, EventArgs e)方法。
    <asp:Button ID="Button2" runat="server" Text="Button" />是 Asp.net 服务器控件,并且我们没有为其定义 click,但是我们点击时,页面也会发回到服务器端。
    由此可见:Html 标注和 Html 服务器控件的事件是由页面来触发的,而 Asp.net 服务器控件则是由页面把 Form 发回到服务器端,由服务器来处理。
posted @ 2009-03-23 09:49  zhougb  阅读(1780)  评论(0编辑  收藏  举报