1)、 Asp.net服务器控件提供更加统一的编程接口,如每个Asp.net服务器控件都有Text属性 。
2)、 隐藏客户端的不同,这样程序员可以把更多的精力放在业务上,而不用去考虑客户端的浏览器是ie还是firefox,或者是移动设备 。
3)、 Asp.net服务器控件可以保存状态到ViewState里,这样页面在从客户端回传到服务器端或者从服务器端下载到客户端的过程中都可以保存 。
4)、 事件处理模型不同,Html标注和Html服务器控件的事件处理都是在客户端的页面上,而Asp.net服务器控件则是在服务器上,举例来说:
<input id="Button4" type="button" value=https://minzuwang.com/read/"button" runat="server"/>是Html服务器控件,此时我们点击此按钮,页面不会回传到服务器端,原因是我们没有为其定义鼠标点击事件 。
<input id="Button4" type="button" value=https://minzuwang.com/read/"button" runat="server" onserverclick="test" />我们为Html服务器控件添加了一个onserverclick事件,点击此按钮页面会发回服务器端,并执行test(object sender, EventArgs e)方法 。
<asp:Button ID="Button2" runat="server" Text="Button" />是Asp.net服务器控件,并且我们没有为其定义click,但是我们点击时,页面也会发回到服务器端 。
由此可见:Html标注和Html服务器控件的事件是由页面来触发的,而Asp.net服务器控件则是由页面把Form发回到服务器端,由服务器来处理 。
4、下面我就结合我自己的测试来说明问题:
这段代码是我放在repeat中的模板里的:其中DeleteCheck是一个js脚本函数,注意是用于是否发送到服务器端的,这里就不展示脚本代码了 。
<input runat="server" type="button" id="delete" value=https://minzuwang.com/read/"Server button" />
<input type="button" onclick="return DeleteCheck(this)" id="Button1" value=https://minzuwang.com/read/"Client button" />
<input runat="server" type="submit" onclick="return DeleteCheck(this)" id="Button2" value=https://minzuwang.com/read/"Server submit" />
<input type="submit" onclick="return DeleteCheck(this)" id="Button3" value=https://minzuwang.com/read/"Client submit" />
<button runat="server" id="button4" onclick="return DeleteCheck(this)" value=https://minzuwang.com/read/"Button-Button">Button-Button
<asp:Button runat="server" ID="button5" OnClientClick="return DeleteCheck(this)" Text="Asp:button" />
展现出来的html代码如下:
<input name="Data$ctl03$delete" type="button" id="Data_ctl03_delete" value=https://minzuwang.com/read/"Server button" />
<input type="button" onclick="return DeleteCheck(this)" id="Button1" value=https://minzuwang.com/read/"Client button" />
<input name="Data$ctl03$Button2" type="submit" id="Data_ctl03_Button2" onclick="return DeleteCheck(this)" value=https://minzuwang.com/read/"Server submit" / >
<input ut type="submit" onclick="return DeleteCheck(this)" id="Button3" value=https://minzuwang.com/read/"Client submit" />
<button id="Data_ctl03_button4" onclick="return DeleteCheck(this)" value=https://minzuwang.com/read/"Button-Button">Button-Button
<input type="submit" name="Data$ctl03$button5" value=https://minzuwang.com/read/"Asp:button" onclick="return DeleteCheck(this);" id="Data_ctl03_button5" />
可以看出以下几点:
1、当控件属性中有runat="server"时,生成的html控件时name和id发生的变化(.net Framework) 。
2、当asp:button服务器按钮通过生成的页面后转化成类型为submit类型的Client控件 。
3、当控件是html控件时通过生成的页面和原来的html代码完全一样(理由上面已经说名) 。
另外我还测试了把这段代码直接放到form标记中(不放到其他子标记中)
如: <input runat="server" type="button" id="delete" value=https://minzuwang.com/read/"Server button" onserverclick="delete_ServerClick" />
<input type="button" onclick="return DeleteCheck(this)" id="Button1" value=https://minzuwang.com/read/"Client button" />
<input runat="server" type="submit" onclick="return DeleteCheck(this)" id="Button2" value=https://minzuwang.com/read/"Server submit" />
<input type="submit" onclick="return DeleteCheck(this)" id="Button3" value=https://minzuwang.com/read/"Client submit" />
<button runat="server" id="button4" onclick="return DeleteCheck(this)" value=https://minzuwang.com/read/"Button-Button">Button-Button
推荐阅读
- 苹果的音乐一直在锁屏上怎么关 苹果自带音乐怎么关闭在屏幕显示
- qq怎么在其他应用上小屏显示,qq悬浮窗口在哪打开vivo
- 苹果手机不显示sim卡是什么原因,苹果激活sim卡无效是怎么回事
- 大众仪表盘00按钮按了怎么办 大众仪表盘00的按钮怎么用
- win8浏览器图标不见了,win8浏览器打不开网页
- 淘宝电脑版网页,手机淘宝网页
- 如何使用网页版新浪微博,手机版怎么看新浪微博访问足迹?
- 电脑硬盘坏了会显示什么图片 电脑硬盘坏了会显示什么
- 天然气锅炉显示e9是什么意思 天然气显示e9是什么意思
- u盘插在夏普电视上怎么打开文件 夏普电视插上u盘怎么不显示