Button Web 服务器控件概述

更新:2007 年 11 月

使用 ASP.NET 按钮 Web 服务器控件可使用户能够将页发送到服务器并触发页上的事件。

本主题包括:

  • 背景

  • 代码示例

  • 类参考

背景

可使用 Button Web 服务器控件为用户提供向服务器发送页的能力。该控件会在服务器代码中触发一个事件,您可以处理该事件来响应回发。例如,用户可以指示已完成表单或希望执行特定的命令。

ASP.NET 包括三种按钮控件,每种按钮控件在网页上显示的方式都不同,如下表所列:

控件

说明

Button

显示一个标准命令按钮,该按钮呈现为一个 HTML input 元素。

LinkButton

呈现为页面中的一个超链接。但是,它包含使窗体被发回服务器的客户端脚本。(可以使用 HyperLink Web 服务器控件创建真实的超链接。)

ImageButton

将图形呈现为按钮。这对于提供丰富的按钮外观非常有用。ImageButton 控件还提供有关图形内已单击位置的坐标信息。

也可以使用 HtmlButtonHtmlInputButton 控件在页面上创建可以在服务器代码中进行编程的按钮。有关 HTML 与 Web 服务器控件之间的区别的详细信息,请参见 ASP.NET Web 服务器控件概述

ImageMap 控件使您能够创建具有作用点的图形,用户可以单击这些作用点来执行回发或其他操作。

按钮事件

当用户单击任何 Web 服务器控件按钮时,会将该页发送到服务器。这使得在基于服务器的代码中,网页被处理,任何挂起的事件被引发。这些按钮还可引发它们自己的 Click 事件,您可以为这些事件编写事件处理程序。

Button 控件和验证

如果某一页面包含 ASP.NET 验证程序控件,则在默认情况下,单击按钮控件会导致验证程序控件执行检查。如果为验证程序控件启用了客户端验证,则在验证检查失败时不会提交该页面。

下表描述了按钮控件所支持的使您可以更精确地控制验证过程的属性。

属性

说明

CausesValidation

指定单击按钮是否还执行验证检查。将此属性设置为 false 可避免验证检查。

ValidationGroup

使您能够指定单击按钮时调用页面上的哪些验证程序。如果未建立任何验证组,则单击按钮会调用页面上的所有验证程序。

有关更多信息,请参见在 ASP.NET 网页中验证用户输入

按钮回发行为

当用户单击按钮控件时,该页回发到服务器。默认情况下,该页回发到其本身,在这里重新生成相同的页面并处理该页上控件的事件处理程序。

可以配置按钮以将当前页面回发到另一页面。这对于创建多页窗体可能非常有用。有关详细信息,请参见ASP.NET 网页中的跨页发送

默认情况下,Button 控件使用 HTML POST 操作提交页面。LinkButtonImageButton 控件不能直接支持 HTML POST 操作。因此,使用这些按钮时,它们将客户端脚本添加到页面以允许控件以编程方式提交页面。(因此 LinkButtonImageButton 控件要求在浏览器上启用客户端脚本。)

在某些情况下,您可能希望 Button 控件也使用客户端脚本执行回发。这在希望以编程方式操作回发(如将回发附加到页面上的其他元素)时可能非常有用。可以将 Button 控件的 UseSubmitBehavior 属性设置为 true 以使 Button 控件使用基于客户端脚本的回发。

对 UpdatePanel 控件使用按钮

通过部分页呈现,可以在不进行回发的情况下刷新页的某些部分。UpdatePanel 控件使您能够标记参与部分页呈现中的页面部分。默认情况下,UpdatePanel 控件内的控件(包括 Button 控件)的行为用于执行异步回发,而不是回发。这样将只刷新回发源自的 UpdatePanel 控件的内容。

除了 UpdatePanel 控件内部的 Button 控件的方案以外,还可以在下列方案中对 UpdatePanel 控件使用 Button 控件:

有关部分页呈现和使用 UpdatePanel 控件的更多信息,请参见 UpdatePanel 控件概述部分页呈现概述

处理 Button 控件的客户端事件

Button 控件既可以引发服务器事件,也可以引发客户端事件。服务器事件在回发后发生,且这些事件在为页面编写的服务器端代码中处理。客户端事件在客户端脚本(通常为 ECMAScript (JavaScript))中处理,并在提交页面前引发。通过向 ASP.NET 按钮控件添加客户端事件,可以执行一些任务(如在提交页之前显示确认对话框以及可能取消提交)。有关详细信息,请参见 ASP.NET 网页中的客户端脚本如何:响应客户端脚本中的 Button Web 服务器控件事件

数据控件中的按钮

Button Web 服务器控件常用于数据控件(如 DataListGridViewRepeater 列表控件)中。在这些情况下,通常不会直接响应按钮单击事件。相反,数据控件中的按钮将引发特定于数据控件的事件。例如,在 DataList 控件中,一个按钮可能引发 DataList 控件的 ItemCommand 事件而不是引发 Button 控件的 Click 事件。

因为数据绑定列表控件可以包含多个按钮,所以可以设置按钮的 CommandArgument 属性以指定作为事件的一部分传递的值。然后,可以测试该参数以确定哪个按钮被单击。

将数据绑定到控件

为了动态控制 Button Web 服务器控件的属性设置,可将其绑定到一个数据源。例如,可使用数据绑定来设置按钮的 Text 属性。

代码示例

如何:向 Web 窗体页添加按钮 Web 服务器控件 (Visual Studio)

如何:向 Web 窗体页添加 ImageButton Web 服务器控件 (Visual Studio)

如何:确定 ImageButton Web 服务器控件中的坐标

如何:响应 Button Web 服务器控件事件

如何:响应客户端脚本中的 Button Web 服务器控件事件

返回页首

类参考

下表列出与按钮控件相关的关键类。

成员

说明

Button, LinkButton, ImageButton

按钮控件的主类。

返回页首

请参见

任务

如何:向 ASP.NET Web 服务器控件添加客户端脚本事件

概念

ASP.NET 网页中的客户端脚本

ASP.NET 网页中的跨页发送