2.3.1 文本框控件的属性 通常情况下,默认的文本控件(TextBox)是一个单行的文本框,用户只能在文本框中输入一行内容。通过修改该属性,则可以将文本框设置为多行/或者是以密码形式显示,文本框控件常用的控件属性 如下所示。 AutoPostBack:在文本修改以后,是否自动重传 Columns:文本框的宽度。 EnableViewState:控件是否自动保存其状态以用于往返过程。 MaxLength:用户输入的最大字符数。 ReadOnly:是否为只读。 Rows:作为多行文本框时所显式的行数。 TextMode:文本框的模式,设置单行,多行或者密码。 Wrap:文本框是否换行。
EnableViewState(控件状态)属性 AutoPostBack(自动回传)属性 2.3.1 文本框控件的属性 EnableViewState(控件状态)属性 2 其 他 属 性 3 AutoPostBack(自动回传)属性 1 ViewState是ASP.NET中用来保存Web控件回传状态的一种机制,它是由ASP.NET页面框架管理的一个隐藏字段。在回传发生时,ViewState数据同样将回传到服务器,ASP.NET框架解析ViewState字符串并为页面中的各个控件填充该属性。而填充后,控件通过使用ViewState将数据重新恢复到以前 的状态。在使用某些特殊的控件时,如数据库控件,来显示数据库。 每次打开页面执行一次数据库往返过程 是非常不明智的。开发人员可以绑定数据,在加载页面时仅对页面设置一次,在后续的回传中,控件将自动从ViewState中重新填充,减少了数据库的往返次数,从而不使用过多的服务器资源。在默认情况 下,EnableViewState的属性值通常为 true。 上面的两个属性是比较重要的属性,其他的属性也经常使用。 MaxLength:在注册时可以限制用户输入的字符串长度。 ReadOnly:如果将此属性设置为 true,那么文本框内的值是无法被修改的。 TextMode:此属性可以设置文本框的模式,例如单行、多行和密码形式。默认情况下,不设置 TextMode 属性,那么文本框默认为单行。 在网页的交互中,如果用户提交了表单,或者执行了相应的方法,那么该页面将会发送到服务器上,服务器将执行表单的操作或者执行相应方法后,再呈现给用户,例如按钮控件、下拉菜单控件等。如果将某个控件的 AutoPostBack 属性设置为 true 时,则如果该控件的属性被修改,那么同样会使页面自动 发回到服务器。
2.3.2 文本框控件的使用 左述代码演示了三种文本框的使用方法,上述代码运行后的结果如图 5-3 所示。 2.3.2 文本框控件的使用 左述代码演示了三种文本框的使用方法,上述代码运行后的结果如图 5-3 所示。 在默认情况下,文本框为单行类型,同时文本框模式也包括多行和密码,示例代码如下所示。 <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <br /> <asp:TextBox ID="TextBox2" runat="server" Height="101px" TextMode="MultiLine" Width="325px"></asp:TextBox> <asp:TextBox ID="TextBox3" runat="server" TextMode="Password"></asp:TextBox>
2.3.2 文本框控件的使用 在默认情况下,文本框为单行类型,同时文本框模式也包括多行和密码,示例代码如下所示。 2.3.2 文本框控件的使用 在默认情况下,文本框为单行类型,同时文本框模式也包括多行和密码,示例代码如下所示。 上述代码演示了三种文本框的使用方法,上述代码运行后的结果如图所示。 <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <br /> <asp:TextBox ID="TextBox2" runat="server" Height="101px" TextMode="MultiLine" Width="325px"></asp:TextBox> <asp:TextBox ID="TextBox3" runat="server" TextMode="Password"></asp:TextBox>
2.3.2 文本框控件的使用 文本框无论是在Web 应用程序开发还是Windows应用程序开发中都是非常重要的。文本框在用户交互中能够起到非常重要的作用。在文本框的使用中,通常需要获取用户在文本框中输入的值或者检查文本框属性是否被改写。当获取用户的值的时候,必须通过一段代码来控制。 <form id="form1" runat="server"> <div> <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> <br /> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" /> </div> </form> 上述代码声明了一个文本框控件和一个按钮控件,当用户单击按钮控件时,就需要实现标签控件的文本改变。
2.3.2 文本框控件的使用 同样,双击文本框控件,会触发TextChange事件。而当运行时,当文本框控件中的字符变化后, 并没有自动回传,是因为默认情况下,文本框的AutoPostBack属性被设置为 false。当AutoPostBack属 性被设置为true时,文本框的属性变化,则会发生回传,示例代码如下所示。 为了实现相应的效果,可以通过编写cs文件代码进行逻辑处理,示例代码如下所示: 上述代码中,当双击按钮时,就会触发一个按钮事件,这个事件就是将文本框内的值赋值到标签内,运行结果如图5-4所示。 namespace _5_3 { public partial class _Default : System.Web.UI.Page protected void Page_Load(object sender, EventArgs e) } protected void Button1_Click(object sender, EventArgs e) Label1.Text = TextBox1.Text; //页面命名空间 //页面加载时触发 //双击按钮时触发的事件 //标签控件的值等于文本框中控件的值 protected void TextBox1_TextChanged(object sender, EventArgs e) { Label1.Text = TextBox1.Text; } //文本框事件 //控件相互赋值 上述代码中,为TextBox1添加了TextChanged事件。在TextChanged事件中,并不是每一次文本框的内容发生了变化之后,就会重传到服务器,这一点和WinForm是不同的,因为这样会大大的降低页面的效率。而当用户将文本框中的焦点移出导致TextBox就会失去焦点时,才会发生重传。
2.4.1 按钮控件的通用属性 按钮控件用于事件的提交,按钮控件包含一些通用属性,按钮控件的常用通用属性包括有: 2.4.1 按钮控件的通用属性 按钮控件用于事件的提交,按钮控件包含一些通用属性,按钮控件的常用通用属性包括有: 对于三种按钮,他们起到的作用基本相同,主要是表现形式不同 Causes Validation:按钮是否导致激发验证检查。 CommandArgument:与此按钮管理的命令参数。 CommandName:与此按钮关联的命令。 ValidationGroup:使用该属性可以指定单击按钮时调用页面上的哪些验证程序。 如果未建立任 何验证组,则会调用页面上的所有验证程序。下面的语句声明了三种按钮,示例代码如下所示。 <asp:Button ID="Button1" runat="server" Text="Button" /> <br /> //普通的按钮 <asp:LinkButton ID="LinkButton1" runat="server">LinkButton</asp:LinkButton> //Link 类型的按钮 <asp:ImageButton ID="ImageButton1" runat="server" /> //图像类型的按钮
2.4.2 Click单击事件 这三种按钮控件对应的事件通常是 Click 单击和 Command 命令事件。在 Click 单击事件中,通常用 于编写用户单击按钮时所需要执行的事件,示例代码如下所示。 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 = "图片按钮被触发"; //输出信息
2.4.3 Command命令事件 注意:当按钮同时包含 Click 和 Command 事件时,通常情况下会执行 Command 事件。 按钮控件中,Click事件并不能传递参数,所以处理的事件相对简单。而Command事件可以传递参数,负责传递参数的是按钮控件的CommandArgument和CommandName属性。如图所示 将 CommandArgument 和 CommandName 属性分别设置为 Hello!和 Show,单击创建一个 Command事件并在事件中编写相应代码,示例代码如下所示 protected void Button1_Command(object sender, CommandEventArgs e) { if (e.CommandName == "Show") //如果 CommandNmae 属性的值为 Show,则运行下面代码 Label1.Text = e.CommandArgument.ToString();//CommandArgument 属性的值赋值给 Label1 } 注意:当按钮同时包含 Click 和 Command 事件时,通常情况下会执行 Command 事件。