3.4 数据提交控件
在ASP.NET中,Web服务器控件包括三种类型的数据提交控件:Button控件、LinkButton控件和ImageButton控件,每种控件在网页上的显示方式都各不相同。当用户单击这三种类型的按钮控件中的任何一种时,都会向服务器提交一个表单,以此来完成对页面数据的提交功能。
3.4.1 Button控件
Button控件可以在Web页面上创建一个按钮,可以通过它的Text属性来给按钮命名。通常,Button控件可以创建两种类型的按钮:submit(数据提交按钮)或command(命令按钮)。
默认情况下是创建一个submit按钮。submit按钮没有与按钮关联的命令名(按钮关联的命令名由CommandName属性指定),它只是将网页发送回服务器。在编写程序时,可以为它的OnClick事件提供事件处理程序,以编程方式控制单击submit按钮时执行的操作。如下面的代码所示:
<asp:Button ID="Bt_Save"runat="server"
Text="保存"onclick="Bt_Save_Click"/>
//或者
<asp:Button ID="Bt_Save"runat="server"CommandName="Submit"
Text="保存"OnClick="Bt_Save_Click"/>
在页面上创建好一个保存按钮后,就可以在它的OnClick事件里编写处理代码了。如:
protected void Bt_Save_Click(object sender, EventArgs e)
{
//事件处理程序
}
当然,也可以通过设置CommandName属性来创建command按钮,command按钮将命令名与按钮相关联(如Sort)。如下面的代码所示:
<asp:Button ID="SortAscendingButton"Text="数据排序"
CommandName="Sort"CommandArgument="Ascending"
OnCommand="CommandBtn_Click"runat="server"/>
同OnClick事件一样,可以在它的OnCommand事件里编写处理代码。如:
protected void CommandBtn_Click(Object sender, CommandEventArgs e)
{
Response.Write("CommandName:"+e.CommandName+
"-CommandArgument:"+e.CommandArgument);
}
在实际开发中,可以在Web窗体页上创建多个Button控件,并在OnCommand事件的事件处理程序中以编程方式确定要单击的Button控件。也可以对command按钮使用CommandArgument属性以提供有关要执行的命令(如Ascending)的附加信息。可以为OnCommand事件提供事件处理程序,以编程方式控制单击command按钮时执行的操作,这种按钮在模板化控件中经常使用,后文将详细讲解这部分内容。
默认情况下,在单击Button控件时执行页验证,页验证确定与该页上验证控件关联的输入控件是否通过该验证控件指定的验证规则。如果Button控件需要禁用此行为(如reset按钮),请将CausesValidation属性设置为false。
3.4.2 ImageButton控件
ImageButton控件与Button控件的功能基本相同。与Button控件相比,ImageButton控件可以通过设置ImageUrl属性来指定在该控件中显示的图像,即生成一个图像按钮。同时,它没有Text属性,而是增加了一个AlternateText属性,该属性可以在图像按钮显示不出来图像时显示该名称。如下面的代码所示:
<asp:ImageButton id="Bt_Save"runat="server"
AlternateText="保存"
ImageAlign="Middle"
ImageUrl="images/pic.jpg"
OnClick="Bt_Save_Click"/>
在单击ImageButton控件时,将同时引发OnClick和OnCommand事件。使用OnClick事件处理程序,也可以通过编程方式确定单击的图像位置的坐标。然后,可以根据坐标值编写响应代码。注意,原点(0,0)位于图像的左上角。与Button控件一样,还可以使用OnCommand事件处理程序使ImageButton控件的行为类似于命令按钮,使用CommandName属性,可以将命令名与该控件相关联。
3.4.3 LinkButton控件
LinkButton控件与ImageButton控件、Button控件的功能基本大致相同。与ImageButton控件和Button控件相比,LinkButton控件可以在Web页面上创建一个超链接样式的按钮。通过设置Text属性或将文本放置在LinkButton控件的开始标记和结束标记之间,指定要在LinkButton控件中显示的文本。示例如下面的代码所示:
<asp:LinkButton ID="Bt_Save"Text="保存"
Font-Names="Verdana"Font-Size="14pt"
OnClick="Bt_Save_Click"runat="server"/>
//或者
<asp:LinkButton ID="Bt_Save"
Font-Names="Verdana"Font-Size="14pt"
OnClick="Bt_Save_Click"runat="server">保存</asp:LinkButton>
与ImageButton控件、Button控件一样,默认情况下,LinkButton控件是一个submit按钮。可以为OnClick事件提供事件处理程序,以编程方式控制单击submit按钮时执行的操作。也可以通过设置CommandName属性创建command按钮,将命令名与命令按钮(如Sort)相关联。
注意 LinkButton控件的外观与HyperLink控件相同,但其功能与Button控件相同。如果要在单击控件时链接到另一个网页,请使用HyperLink控件。
LinkButton控件在客户端浏览器上呈现JavaScript。因此,客户端浏览器必须启用了JavaScript,此控件才能正常运行。