ASP.NET Button、ImageButton、LinkButton、HyperLink区别

摘要:
Buttonrunat=“server”Text=“Button Control”/>Button控件最终生成的HTML标记显示在以下代码中。Inputtype=“submit”name=“b1”id=“b1”value=“Button Control”/>在服务器控件中,属性值(图像链接路径)为“LinkButtonrunat=”server“Text=”LinkButton Control“>”;
ASP.NET Button、ImageButton、LinkButton、HyperLink区别
 

这4个控件都属于WEB服务器控件,有很多相同的属性和事件。其区别如下所示。

 在*.aspx页面中插入Button控件如以下代码所示。
<asp:Button runat="server" Text="Button控件" />
在页面运行后,Button控件最终生成的HTML标签如以下代码所示。
<input type="submit" name="b1" id="b1"value="Button控件" />
即Button控件最终生成的是HTML表单控件中的提交按钮,其“name”属性和“id”属性为服务器控件中的“ID”属性值。

 在*.aspx页面中插入ImageButton控件如以下代码所示。
<asp:ImageButton runat="server" ImageUrl="/img/uc1.gif" />
在页面运行后,ImageButton控件最终生成的HTML标签如以下代码所示。
<input type="image" name="b2" src="http://t.zoukankan.com/img/uc1.gif" />
类似于Button控件,ImageButton控件最终生成的也是HTML表单控件,只是类型为图像,其“src”属性值(图像链接路径)即为服务器控 件中的“ImageUrl”属性值。

 在*.aspx页面中插入LinkButton控件如以下代码所示。
<asp:LinkButton runat="server" Text="LinkButton控件"></asp:LinkButton>
在页面运行后,LinkButton控件最终生成的HTML标签如以下代码所示。
<a href="javascript:__doPostBack('b3','')">LinkButton控件</a>
和以上两个控件不同,LinkButton控件生成的HTML标签是超级链接,只是“href”属性指向一个浏览器端的javascript函数 (__doPostBack函数),并传递两个字符串参数。其中,第1个参数是该服务器控件的“ID”属性值,第2个参数则为可传递给服务器的事件参数。
说明:__doPostBack函数的第1个参数即为引发页面回传的控件ID,后面讲述回传机制时会详细分析。

 在*.aspx页面中插入HyperLink控件如以下代码所示。
<asp:HyperLink runat="server" Text="HyperLink控件" NavigateUrl="~/Index.aspx"></asp:HyperLink>
在页面运行后,HyperLink控件最终生成的HTML标签如以下代码所示。
<a href="http://sdrabbit.blog.163.com/blog/Index.aspx">HyperLink控件</a>
类似于LinkButton控件,HyperLink控件所生成的HTML标签是最常用的超级链接,其“href”属性即为服务器控件中的 “NavigateUrl”属性值,指向一个页面的URL。

【分析】
本题考查面试者对几个常用且字面上容易混淆的服务器控件的认识程度。解答中通过这些服务器控件实际生成的HTML代码进行区分.
Button控件使用非常 频繁,该控件用于提交表单数据。
ImageButton控件和Button控件基本相似,只是通过图像来表现外观.
和Button控件的Click事件不 同,ImageButton控件的Click事件是配合System.Web.UI.ImageClickEventHandler委托工作的。即 ImageButton控件的Click事件处理方法中使用的事件参数类型为System.Web.UI.ImageClickEventArgs,两个 参数X,Y可以获取用户单击的精确位置并做相应的处理。
LinkButton控件和HyperLink控件直接生成超级链接标签,从外观上来 看,LinkButton控件和HyperLink控件是一模一样的,因为它们生成的都是超级链接标签。
以上几个控件中,只有HyperLink控件不传 递数据给服务器,根据“NavigateUrl”属性直接跳转到指定页面。而其他三个控件都是通过表单将数据提交到服务器,LinkButton控件有点 特殊,该控件通过javascript函数的__doPostBack函数将数据赋值给表单的隐藏字段,然后提交回服务器。

免责声明:文章转载自《ASP.NET Button、ImageButton、LinkButton、HyperLink区别》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇博客上几种新职业的工作指南PetShop 4.0 详解之四(PetShop之ASP.NET缓存)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

WPF数据绑定(四)

1、DataTemplate 上一部分已经讲了itemsource绑定,功能虽然实现了但是还是有点土,内容太单一了,如果能够修改listbox的界面,让更多的元素展示出来就完美了。 DataTemplate就可以实现这个。 1 <TabItem Header="DataTemplate"> 2...

Selenium Webdriver元素定位的八种常用方式【转】

在使用selenium webdriver进行元素定位时,通常使用findElement或findElements方法结合By类返回的元素句柄来定位元素。其中By类的常用定位方式共八种,现分别介绍如下。 1. By.name() 假设我们要测试的页面源码如下: <button id="gbqfba" aria-label="Google Search...

C++的STL中accumulate的用法

accumulate定义在#include<numeric>中,作用有两个,一个是累加求和,另一个是自定义类型数据的处理 1.累加求和int sum = accumulate(vec.begin() , vec.end() , 42); accumulate带有三个形参:头两个形参指定要累加的元素范围,第三个形参则是累加的初值。accumula...

div包裹页面后多余部分没有显示,也没滚动条 overflow 属性设置

今天弄个div套着一个页面结果那个页面超出范围后页面没有滚动条可以滚动浏览下面的内容,原来是设置了overflow的hidden属性 visible 默认值。内容不会被修剪,会呈现在元素框之外。 hidden 内容会被修剪,并且其余内容是不可见的。 scroll 内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。 auto 如果内容被...

Dango之初识安装

1. MVC和MTV框架 1.1MVC Web服务器开发领域里著名的MVC模式 所谓MVC就是把Web应用分为模型(M), 控制器(C)和视图(V)三层,他们之间以一种插件式的、松耦合的方式连接在一起,模型负责业务对象与数据库的映射(ORM),视图负责与用户的交互(页面),控制器接受用户的输入调用模型和视图完成用户的请求,其示意图如下所示: 1.2MTV...

Maven的assembly插件实现自定义打包部署(包含依赖jar包)

微服务必备 优点:   1、可以直接导入依赖jar包   2、可以添加插件启动 .sh 文件   3、插件的配置以及微服务的统一打包方式 1.首先我们需要在pom.xml中配置maven的assembly插件 <build> <plugins> <plugin>...