Let us generate a simple e-card generator using ASP.NET 3.5
In this we are dividing the web page region into two half on the left there is an ordinary <div> tag containing a set of web controls for specifying card option and on right is a panel control which contains two other controls like iblgreeting and imgDefault that are used to display user configurable text and a picture.
Whenever the user clicks the update button, the page is posted back and the card is updated.The .aspx page code are as follows
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="GreetingCardMaker.aspx.cs"
Inherits="GreetingCardMaker" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>Greeting Card Maker</title>
</head>
<body>
<form id="Form1" runat="server">
<div>
<!-- Here are the controls: -->
Choose a background color:<br />
<asp:DropDownList ID="lstBackColor" runat="server"
Width="194px" Height="22px" /><br />
<br />
Choose a font:<br />
<asp:DropDownList ID="lstFontName" runat="server"
Width="194px" Height="22px" /><br />
<br />
Specify a numeric font size:<br />
<asp:TextBox ID="txtFontSize" runat="server" /><br />
<br />
Choose a border style:<br />
<asp:RadioButtonList ID="lstBorder" runat="server"
Width="177px" Height="59px" /><br />
<br />
<asp:CheckBox ID="chkPicture" runat="server" Text="Add the
Default Picture"></asp:CheckBox><br />
<br />
Enter the greeting text below:<br />
<asp:TextBox ID="txtGreeting" runat="server" Width="240px"
Height="85px" TextMode="MultiLine" /><br />
<br />
<asp:Button ID="cmdUpdate" OnClick="cmdUpdate_Click"
runat="server" Width="71px"
Height="24px" Text="Update" />
</div>
<!-- Here is the card: -->
<asp:Panel ID="pnlCard" runat="server" Width="339px"
Height="481px" HorizontalAlign="Center">
<br />
<asp:Label ID="lblGreeting" runat="server" Width="256px"
Height="150px" /><br />
<br />
<br />
<asp:Image ID="imgDefault" runat="server" Width="212px"
Height="160px" />
</asp:Panel>
</form>
</body>
</html>
The Page.Load event, where initial values are set, and the button.Click event, where the card is generated.
public partial class GreetingCardMaker : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
// Set color options.
lstBackColor.Items.Add("White");
lstBackColor.Items.Add("Red");
lstBackColor.Items.Add("Green");
lstBackColor.Items.Add("Blue");\
lstBackColor.Items.Add("Yellow");
// Set font options.
lstFontName.Items.Add("Times New Roman");
lstFontName.Items.Add("Arial");
lstFontName.Items.Add("Verdana");
lstFontName.Items.Add("Tahoma");
// Set border style options by adding a series of
// ListItem objects.
ListItem item = new ListItem();
// The item text indicates the name of the option.
item.Text = BorderStyle.None.ToString();
// The item value records the corresponding integer
// from the enumeration. To obtain this value, you
// must cast the enumeration value to an integer,
// and then convert the number to a string so it
// can be placed in the HTML page.
item.Value = ((int)BorderStyle.None).ToString();
// Add the item.
lstBorder.Items.Add(item);
// Now repeat the process for two other border styles.
item = new ListItem();
item.Text = BorderStyle.Double.ToString();
item.Value = ((int)BorderStyle.Double).ToString();
lstBorder.Items.Add(item);
item = new ListItem();
item.Text = BorderStyle.Solid.ToString();
item.Value = ((int)BorderStyle.Solid).ToString();
lstBorder.Items.Add(item);
// Select the first border option.
lstBorder.SelectedIndex = 0;
// Set the picture.
imgDefault.ImageUrl = "defaultpic.png";
}
}
protected void cmdUpdate_Click(object sender, EventArgs e)
{
// Update the color.
pnlCard.BackColor = Color.FromName(lstBackColor.SelectedItem.Text);
// Update the font.\
lblGreeting.Font.Name = lstFontName.SelectedItem.Text;
if (Int32.Parse(txtFontSize.Text) > 0)
{
lblGreeting.Font.Size =
FontUnit.Point(Int32.Parse(txtFontSize.Text));
}
// Update the border style. This requires two conversion steps.
// First, the value of the list item is converted from a string
// into an integer. Next, the integer is converted to a value in
// the BorderStyle enumeration.
int borderValue = Int32.Parse(lstBorder.SelectedItem.Value);
pnlCard.BorderStyle = (BorderStyle)borderValue;
// Update the picture.
if (chkPicture.Checked)
{
imgDefault.Visible = true;
}
else
{
imgDefault.Visible = false;
}
// Set the text.
lblGreeting.Text = txtGreeting.Text;
}
}