5.4 按钮控件(Button,LinkButton,ImageButton)

  在Web应用程序和用户交互时,常常需要提交表单、获取表单信息等操作。在这其间,按钮控件是非常必要的。按钮控件能够触发事件,或者将网页中的信息回传给服务器。在ASP.NET中,包含三类按钮控件,分别为Button、LinkButton、ImageButton。

5.4.1 按钮控件的通用属性
  按钮控件用于事件的提交,按钮控件包含一些通用属性,按钮控件的常用通用属性包括有:
?1)Causes Validation:按钮是否导致激发验证检查。
?2)CommandArgument:与此按钮管理的命令参数。
?3)CommandName:与此按钮关联的命令。
?4)ValidationGroup:使用该属性可以指定单击按钮时调用页面上的哪些验证程序。如果未建立任何验证组,  则会调用页面上的所有验证程序。
下面的语句声明了三种按钮,示例代码如下所示。
+展开
-HTML
        <asp:Button ID="Button1" runat="server" Text="Button" /> <!--普通的按钮-->
        <br >
        <asp:LinkButton ID="LinkButton1" runat="server">LinkButton</asp:LinkButton> <!--Link类型的按钮-->
        <br >
        <asp:ImageButton ID="ImageButton1" runat="server" /> <!--图像类型的按钮-->
  对于三种按钮,他们起到的作用基本相同,主要是表现形式不同,如图5-5所示。
三种按钮类型
图5-5 三种按钮类型

5.4.2 Click单击事件
  这三种按钮控件对应的事件通常是Click单击和Command命令事件。在Click单击事件中,通常用于编写用户单击按钮时所需要执行的事件,示例代码如下所示。
+展开
-C#
        protected void Button1_Click(object sender, EventArgs e)
        {
            Label1.Text = "普通按钮被触发";//输出信息
        }
        protected void LinkButton1_Click(object sender, EventArgs e)
        {
            Label1.Text = "连接按钮被触发";//输出信息
        }
        protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
        {
            Label1.Text = "图片按钮被触发";//输出信息
        }

  上述代码分别为三种按钮生成了事件,其代码都是将Label1的文本设置为相应的文本,运行结果如图5-6所示。
按钮的Click事件
图5-6 按钮的Click事件

5.4.3 Command命令事件
  按钮控件中,Click事件并不能传递参数,所以处理的事件相对简单。而Command事件可以传递参数,负责传递参数的是按钮控件的CommandArgument和CommandName属性。如图5-7所示。
CommandArgument和CommandName属性
图5-7 CommandArgument和CommandName属性

  将CommandArgument和CommandName属性分别设置为Hello!和Show,单击 创建一个Command事件并在事件中编写相应代码,示例代码如下所示。
+展开
-C#
        protected void Button1_Command(object sender, CommandEventArgs e)
        {
            if (e.CommandName == "Show")//如果CommandNmae属性的值为Show,则运行下面代码
            {
                Label1.Text = e.CommandArgument.ToString();//CommandArgument属性的值赋值给Label1
            }
        }

注意:当按钮同时包含Click和Command事件时,通常情况下会执行Command事件。
  Command有一些Click不具备的好处,就是传递参数。可以对按钮的CommandArgument和CommandName属性分别设置,通过判断CommandArgument和CommandName属性来执行相应的方法。这样一个按钮控件就能够实现不同的方法,使得多个按钮与一个处理代码关联或者一个按钮根据不同的值进行不同的处理和响应。相比Click单击事件而言,Command命令事件具有更高的可控性。

加支付宝好友偷能量挖...


评论(0)网络
阅读(129)喜欢(0)Asp.Net/C#/WCF