当前位置 : 主页 > 网络编程 > 其它编程 >

HTML服务器控件与Web服务器控件的区别

来源:互联网 收集:自由互联 发布时间:2023-07-02
项目HTML服务器控件Web服务器控件是否映射到HTML标签与HTML标签存在一一对应的映射关系。runatserver属性把传统的HTML标签转换成服务器控件。这使得开发人员可以 项目HTML服务器控件Web服务
项目HTML服务器控件Web服务器控件是否映射到HTML标签与HTML标签存在一一对应的映射关系。runatserver属性把传统的HTML标签转换成服务器控件。这使得开发人员可以 项目HTML服务器控件Web服务器控件

是否映射到

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

对象模型

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

是否能自适应输出

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

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

CodeButton-Button

展现出来的html代码如下:

Code Button-Button

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

CodeButton-ButtonLinkButton

生成的html代码:

Code Button-ButtonLinkButton

这里有可以看出几点 1、当html服务器控件在服务器端添加了服务器事件后生成的代码变为:οnclick"_doPostBack()"实际上是调用脚本把整个窗体提 交到服务器(如果没有添件服务器事件而只是添加了runat"server"是不会发送到服务器端的)这里注意如果要在html服务器控件中添加一个客 户端事件如上面的: 变成 那样生成的html代码变成 提示有脚本错误原因是onclick事件执行了2个脚本且书写的格式不正确。 οnclick"return DeleteCheck(this)_doPostBack()" 这样的话就只能执行第一个函数而第二个函数就不能执行了(return).如果用 οnclick"return DeleteCheck(this)_doPostback()" 是指2个函数同时都要执行没有影响(相当于一条语句)。在我的一个项目中需要对于控件进行区分总结我在网上找了找加上自己的实际测试总结如下 这里有可以看出几点 1、当html服务器控件在服务器端添加了服务器事件后生成的代码变为:οnclick"_doPostBack()"实际上是调用脚本把整个窗体提 交到服务器(如果没有添件服务器事件而只是添加了runat"server"是不会发送到服务器端的)这里注意如果要在html服务器控件中添加一个客 户端事件如上面的 变成 那样生成的html代码变成 提示有脚本错误原因是onclick事件执行了2个脚本且书写的格式不正确。 οnclick"return DeleteCheck(this)_doPostBack()"这样的话就只能执行第一个函数而第二个函数就不能执行了(return).如果用 οnclick"return DeleteCheck(this)_doPostback()"是指2个函数同时都要执行没有影响(相当于一条语句)。 2、asp:button中的onclientclick事件生成后就变成了onclick事件了,类型变成了type"submit".然而服务器事件的onclick我想是通过发送到服务器端执行的。 3、LinkButton不定义onclick事件它会自动的生成下面代码发送到服务器端。href"java script _ :__doPostBack(LinkButton1, )" 4、asp:button中的onclientclick事件生成后就变成了onclick事件了,类型变成了type"submit".然而服务器事件的onclick我想是通过发送到服务器端执行的。

转:https://www.cnblogs.com/leeolevis/archive/2009/02/03/1383117.html

上一篇:子元素使用margintop影响父元素的解决方法
下一篇:没有了
网友评论