ASP.NET Tutorial/Custom Controls/Form
Creating an Form Control
<source lang="csharp">
File: Control.ascx <%@ Control Language="C#" ClassName="AddressForm" %> <script runat="server">
public string Title { get { return ltlTitle.Text; } set { ltlTitle.Text = value; } } public string Street { get { return txtStreet.Text; } set { txtStreet.Text = value; } } public string City { get { return txtCity.Text; } set { txtCity.Text = value; } } public string State { get { return txtState.Text; } set { txtState.Text = value; } } public string PostalCode { get { return txtPostalCode.Text; } set { txtPostalCode.Text = value; } }
</script> <fieldset> <legend>
<asp:Literal ID="ltlTitle" Text="Address Form" runat="server" />
</legend>
<asp:Label
ID="lblStreet" Text="Street:" AssociatedControlID="txtStreet" Runat="server" />
<asp:TextBox
ID="txtStreet" Runat="server" />
<asp:RequiredFieldValidator
ID="reqStreet" Text="(required)" ControlToValidate="txtStreet" Runat="server" />
<asp:Label
ID="lblCity" Text="City:" AssociatedControlID="txtCity" Runat="server" />
<asp:TextBox
ID="txtCity" Runat="server" />
<asp:RequiredFieldValidator
ID="reqCity" Text="(required)" ControlToValidate="txtCity" Runat="server" />
<asp:Label
ID="lblState" Text="State:" AssociatedControlID="txtState" Runat="server" />
<asp:TextBox
ID="txtState" Runat="server" />
<asp:RequiredFieldValidator
ID="reqState" Text="(required)" ControlToValidate="txtState" Runat="server" />
<asp:Label
ID="lblPostalCode" Text="Postal Code:" AssociatedControlID="txtPostalCode" Runat="server" />
<asp:TextBox
ID="txtPostalCode" Runat="server" />
<asp:RequiredFieldValidator
ID="RequiredFieldValidator1" Text="(required)" ControlToValidate="txtPostalCode" Runat="server" />
</fieldset>
File: Default.aspx
<%@ Page Language="C#" %>
<%@ Register TagPrefix="user" TagName="AddressForm" Src="~/Control.ascx" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<script runat="server">
protected void btnSubmit_Click(object sender, EventArgs e) { ltlResults.Text = "
Billing Street: " + AddressForm1.Street; ltlResults.Text += "
Billing City: " + AddressForm1.City; ltlResults.Text += "
Billing State: " + AddressForm1.State; ltlResults.Text += "
Billing Postal Code: " + AddressForm1.PostalCode; ltlResults.Text += "
"; ltlResults.Text += "
Shipping Street: " + AddressForm2.Street; ltlResults.Text += "
Shipping City: " + AddressForm2.City; ltlResults.Text += "
Shipping State: " + AddressForm2.State; ltlResults.Text += "
Shipping Postal Code: " + AddressForm2.PostalCode; }
</script> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server">
<style type="text/css"> html { background-color:silver; font:14px Georgia,Serif; } .content { background-color:white; width:600px; margin:auto; padding:20px; } .addressLabel { float:left; width:100px; padding:5px; text-align:right; } .addressField { float:left; padding:5px; } .clear { clear:both; } </style> <title>Checkout</title>
</head> <body>
<form id="form1" runat="server">
<user:AddressForm id="AddressForm1" Title="Billing Address" Runat="server" />
<user:AddressForm id="AddressForm2" Title="Shipping Address" Runat="server" />
<asp:Button ID="btnSubmit" Text="Submit Form" OnClick="btnSubmit_Click" Runat="server" />
<asp:Literal id="ltlResults" Runat="server" />
</form>
</body> </html></source>