ASP.NET Tutorial/ASP.net Controls/TextBox
Содержание
- 1 asp:TextBox changed event (C#)
- 2 Controls being monitored for change events:
- 3 List of events:
- 4 The Simple Calculator
- 4.1 Extrapolate date values from the typed text
- 4.2 Next day is
- 4.3 Get input value from asp:textbox (VB.net)
- 4.4 Important properties, method and event of TextBox control
- 4.5 Set AutoCompleteType
- 4.6 Set textbox text value in button action
- 4.7 Set the focus to a TextBox
- 4.8 Show AutoComplete
- 4.9 TextBox can display different types of input fields depending TextMode property
- 4.10 Use Cint to convert input value in asp:textbox to integer (VB)
- 4.11 Use Convert.ToInt32 to convert input value in asp:textbox to integer (C#)
- 4.12 Use if statement to check form input data (VB.net)
asp:TextBox changed event (C#)
<source lang="csharp">
File: Default.aspx <%@ Page language="c#" Inherits="EventTracker" CodeFile="Default.aspx.cs" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> <head id="Head1" runat="server">
<title>Event Tracker</title>
</head> <body>
<form id="Form1" runat="server">
Controls being monitored for change events:
<asp:TextBox ID="txt" runat="server" AutoPostBack="true" OnTextChanged="CtrlChanged" />
<asp:CheckBox ID="chk" runat="server" AutoPostBack="true" OnCheckedChanged="CtrlChanged"/>
<asp:RadioButton ID="opt1" runat="server" GroupName="Sample" AutoPostBack="true" OnCheckedChanged="CtrlChanged"/> <asp:RadioButton ID="opt2" runat="server" GroupName="Sample" AutoPostBack="true" OnCheckedChanged="CtrlChanged"/>
List of events:
<asp:ListBox ID="lstEvents" runat="server" Width="355px" Height="305px" />
</form>
</body> </html>
File: Default.aspx.cs using System; using System.Collections; using System.ruponentModel; using System.Data; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls;
public partial class EventTracker : System.Web.UI.Page {
protected void Page_Load(object sender, System.EventArgs e) { Log("<< Page_Load >>"); } private void Log(string entry) { lstEvents.Items.Add(entry); lstEvents.SelectedIndex = lstEvents.Items.Count - 1; } protected void Page_PreRender(object sender, System.EventArgs e) { Log("Page_PreRender"); } protected void CtrlChanged(Object sender, EventArgs e) { string ctrlName = ((Control)sender).ID; Log(ctrlName + " Changed"); }
}</source>
Bind string value to asp:textBox (VB.net)
<source lang="csharp">
<script runat="server">
dim strName as String = "A" dim myArray() as String = {"Hello", "World"} dim myString as String = "AA" sub Page_Load(Sender as Object, e as EventArgs) Page.DataBind() end sub
</script> <html>
<form runat="server"> My Name is <%# strName %> <asp:Listbox datasource="<%# myArray %>" runat="server" /> <asp:Textbox text="<%# myString.ToString %>" runat="server" /> </form>
</html></source>
Check form input value and report error in case of empty input (VB.net)
<source lang="csharp">
<%@ Page Language="VB" %> <script runat="server">
sub Submit(Sender as Object, e as EventArgs) lblMessage.Text = "" if tbName.Text = "" then lblMessage.Text = "You forgot your name!
" end if if tbPhone.Text = "" then lblMessage.Text += "You forgot your phone!
" end if if tbEmail.Text = "" then lblMessage.Text += "You forgot your email!
" end if if lblMessage.Text = "" then lblMessage.Text = "Your information has been " & _ "submitted!" end if end sub
</script> <html><body>
Please enter the following information. <asp:Label id="lblMessage" runat="server"/> <form runat="server">
Name* |
<asp:TextBox id="tbName" runat="server"/> |
Address |
<asp:TextBox id="tbAddress" runat="server"/> |
Phone* (area code first) |
<asp:TextBox id="tbPhone" runat="server"/> |
Fax (area code first) |
<asp:TextBox id="tbFax" runat="server"/> |
Email* |
<asp:TextBox id="tbEmail" runat="server"/> |
<asp:Button id="btSubmit" runat="server" Text="Submit" OnClick="Submit" /> |
An asterisk (*) indicates a required field. </form>
</body></html></source>
Convert input in TextBox into decimal
<source lang="csharp">
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server">
<title>Simple Calculator</title>
</head> <body>
<form id="form1" runat="server">
The Simple Calculator
First number: <asp:TextBox ID="txtFirst" runat="server" />
Second number: <asp:TextBox ID="txtSecond" runat="server" />
<asp:Button ID="btnAdd" runat="server" OnClick="btnAdd_Click" Text="Add" />
The answer is: <asp:Label ID="lblAnswer" runat="server" />
</form>
</body> </html> File: Default.aspx.cs using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.Page {
protected void btnAdd_Click(object sender, EventArgs e) { decimal a = decimal.Parse(txtFirst.Text); decimal b = decimal.Parse(txtSecond.Text); decimal c = a + b; lblAnswer.Text = c.ToString(); }
}</source>
Extrapolate date values from the typed text
<source lang="csharp">
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs"
Inherits="Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server">
<title>Extension Methods</title>
</head> <body>
<form id="form1" runat="server"> <asp:TextBox ID="TextBox1" runat="server" /> <asp:Button ID="Button1" runat="server" Text="Test" OnClick="Button1_Click" />
Next day is
<asp:Label ID="Label1" runat="server" /> </form>
</body> </html>
File: Default.aspx.cs using System; using System.Data; using System.Configuration; using System.Collections; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Collections.Generic; using System.Text; public static class StringExtensions
{ public static bool IsInt32(this string content) { int number; bool result = Int32.TryParse(content, out number); return result; } public static bool IsDate(this string content) { DateTime date; bool result = DateTime.TryParse(content, out date); return result; } public static DateTime ToDate(this string content) { DateTime date; bool result = DateTime.TryParse(content, out date); if (result) return date; else return DateTime.MinValue; } public static int ToInt32(this string content) { int number; bool result = Int32.TryParse(content, out number); if (result) return number; else return Int32.MinValue; } }
public partial class Default : System.Web.UI.Page {
public void Button1_Click(object sender, EventArgs e) { string content = TextBox1.Text; if (content.IsDate()) { DateTime date = content.ToDate(); Label1.Text = date.AddDays(1).ToString("dd MMMM yyyy"); } else { Label1.Text = "Not a valid date."; } }
}</source>
Get input value from asp:textbox (VB.net)
<source lang="csharp">
<%@Page Language="VB" %> <script runat="server"> Sub tbMessage_Change(Sender As Object,E As EventArgs)
lblMessage.Text = "Hello" + tbMessage.Text
End Sub </script> <html> <body>
<%Response.Write("Our First Page")%> <form runat="server"> Please enter your name: <asp:textbox id="tbMessage" OnTextChanged="tbMessage_Change" runat=server/> <asp:button id="btSubmit" Text="Submit" runat=server/> <asp:label id="lblMessage" font-size="20pt" runat=server/> </form>
</body> </html></source>
Important properties, method and event of TextBox control
<source lang="csharp">
AccessKey: specify a key that navigates to the TextBox control. AutoCompleteType: associate an AutoComplete class with the TextBox control. AutoPostBack: post the form containing the TextBox back to the server automatically when the contents of the TextBox is changed. Columns: specify the number of columns to display. Enabled: disable the text box. MaxLength: specify the maximum length of data that a user can enter in a text box (does not work when TextMode is set to Multiline). ReadOnly: prevent users from changing the text in a text box. Rows: specify the number of rows to display. TabIndex: specify the tab order of the text box. Wrap: specify whether text word-wraps when the TextMode is set to Multiline. Focus: set the initial form focus to the text box. TextChange: Raised on the server when the contents of the text box are changed.
<%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server">
protected void txtSearch_TextChanged(object sender, EventArgs e) { lblSearchResults.Text = "Search for: " + txtSearch.Text; }
</script> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server">
<title>TextBox AutoPostBack</title>
</head> <body>
<form id="form1" runat="server">
<asp:Label id="lblSearch" Text="Search:" Runat="server" /> <asp:TextBox id="txtSearch" AutoPostBack="true" OnTextChanged="txtSearch_TextChanged" Runat="server" />
<asp:Label id="lblSearchResults" Runat="server" />
</form>
</body> </html></source>
Set AutoCompleteType
<source lang="csharp">
<%@ Page Language="VB" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server">
<title>Show AutoComplete</title>
</head> <body>
<form id="form1" runat="server">
<asp:Label id="lblFirstName" Text="First Name:" AssociatedControlID="txtFirstName" Runat="server" />
<asp:TextBox id="txtFirstName" AutoCompleteType="FirstName" Runat="server" />
<asp:Label id="lblLastname" Text="Last Name:" AssociatedControlID="txtLastName" Runat="server" />
<asp:TextBox id="txtLastName" AutoCompleteType="LastName" Runat="server" />
<asp:Button id="btnSubmit" Text="Submit" Runat="server" />
</form>
</body> </html></source>
Set textbox text value in button action
<source lang="csharp">
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="MyPage" %> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server">
<title>Untitled Page</title>
</head> <body>
<form id="form1" runat="server">
<asp:Label ID="Label1" runat="server" Text="The city name"></asp:Label> <asp:Label ID="note" runat="server" Text="Label"></asp:Label> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <asp:Button ID="Button1" runat="server" Text="Display" />
</form>
</body> </html>
File: Default.aspx.vb
Partial Class MyPage
Inherits System.Web.UI.Page Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click If Me.TextBox1.Text = "" Then Me.note.Text = "Please input the city name" Else Me.note.Text = "The input is:" & Me.TextBox1.Text End If End Sub
End Class</source>
Set the focus to a TextBox
<source lang="csharp">
<%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server">
void Page_Load() { txtFirstName.Focus(); }
</script> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server">
<title>TextBox Focus</title>
</head> <body>
<form id="form1" runat="server">
<asp:Label id="lblFirstName" Text="First Name:" AssociatedControlID="txtFirstName" Runat="server" />
<asp:TextBox id="txtFirstName" AutoCompleteType="FirstName" Runat="server" />
<asp:Label id="lblLastname" Text="Last Name:" AssociatedControlID="txtLastName" Runat="server" />
<asp:TextBox id="txtLastName" AutoCompleteType="LastName" Runat="server" />
<asp:Button id="btnSubmit" Text="Submit" Runat="server" />
</form>
</body> </html></source>
Show AutoComplete
<source lang="csharp">
<%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server">
<title>Show AutoComplete</title>
</head> <body>
<form id="form1" runat="server">
<asp:Label id="lblFirstName" Text="First Name:" AssociatedControlID="txtFirstName" Runat="server" />
<asp:TextBox id="txtFirstName" AutoCompleteType="FirstName" Runat="server" />
<asp:Label id="lblLastname" Text="Last Name:" AssociatedControlID="txtLastName" Runat="server" />
<asp:TextBox id="txtLastName" AutoCompleteType="LastName" Runat="server" />
<asp:Button id="btnSubmit" Text="Submit" Runat="server" />
</form>
</body> </html></source>
TextBox can display different types of input fields depending TextMode property
<source lang="csharp">
The TextMode property accepts the following three values: SingleLine: Displays a single-line input field. MultiLine: Displays a multi-line input field. Password: Displays a single-line input field in which the text is hidden. <%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server">
<title>Show TextBox</title>
</head> <body>
<form id="form1" runat="server">
<asp:TextBox id="txtUserName" TextMode="SingleLine" Runat="server" />
<asp:TextBox id="txtPassword" TextMode="Password" Runat="server" />
<asp:TextBox id="txtComments" TextMode="MultiLine" Runat="server" />
</form>
</body> </html></source>
Use Cint to convert input value in asp:textbox to integer (VB)
<source lang="csharp">
<%@ Page Language="VB" %> <script runat="server">
Sub btSubmit_Click(Sender As Object, E As EventArgs) lblMessage.Text = Cint(tbNumber1.Text) * Cint(tbNumber2.Text) End Sub
</script> <HTML> <HEAD> </HEAD> <BODY> <form runat="server">
Number 1: <asp:textbox id="tbNumber1" runat=server/> Number 2: <asp:textbox id="tbNumber2" runat=server/> <asp:button id="btSubmit" Text="Submit" OnClick="btSubmit_Click" runat=server/> <asp:label id="lblMessage" font-size="20pt" runat=server/>
</form> </BODY> </HTML></source>
Use Convert.ToInt32 to convert input value in asp:textbox to integer (C#)
<source lang="csharp">
<%@ Page Language="C#" %> <script runat="server">
void btSubmit_Click(Object Sender, EventArgs e) { lblMessage.Text = (Convert.ToInt32(tbNumber1.Text) * Convert.ToInt32(tbNumber2.Text)).ToString(); }
</script> <HTML> <HEAD> </HEAD> <BODY> <form runat="server">
Number 1: <asp:textbox id="tbNumber1" runat=server/> Number 2: <asp:textbox id="tbNumber2" runat=server/> <asp:button id="btSubmit" Text="Submit" OnClick="btSubmit_Click" runat=server/> <asp:label id="lblMessage" font-size="20pt" runat=server/>
</form> </BODY> </HTML></source>
Use if statement to check form input data (VB.net)
<source lang="csharp">
<script runat="server">
sub Submit(Sender as Object, e as EventArgs) if tbFName.Text <> "" and not IsNumeric(tbFName.Text) then lblMessage.Text = "First name is incorrect!" end if if tbLName.Text <> "" and not IsNumeric(tbLName.Text) then lblMessage.Text = "Last name is incorrect!" end if if tbAddress.Text <> "" then lblMessage.Text = "Address is incorrect!" end if if tbCity.Text <> "" and not IsNumeric(tbCity.Text) then lblMessage.Text = "City is incorrect!" end if if tbState.Text <> "" and not IsNumeric(tbState.Text) then lblMessage.Text = "State is incorrect!" end if if tbZIP.Text <> "" and IsNumeric(tbZIP.Text) then lblMessage.Text = "ZIP is incorrect!" end if if tbPhone.Text <> "" then lblMessage.Text = "Success!" else lblMessage.Text = "Phone is incorrect!" end if end sub
</script> <html><body>
<form runat="server"> <asp:Label id="lblMessage" runat="server" />
<asp:Panel id="Panel1" runat="server"> First and last name: <asp:TextBox id="tbFName" runat="server" /> <asp:TextBox id="tbLName" runat="server" /> Email: <asp:TextBox id="tbEmail" runat="server" /> Address: <asp:TextBox id="tbAddress" runat="server" /> City, State, ZIP: <asp:TextBox id="tbCity" runat="server" />, <asp:TextBox id="tbState" runat="server" size=2 /> <asp:TextBox id="tbZIP" runat="server" size=5 /> Phone: <asp:TextBox id="tbPhone" runat="server" size=11 /> <asp:Button id="btSubmit" runat="server" text="Add" OnClick="Submit"/> </asp:Panel> </form>
</body></html></source>