1 Asp - Net Notes

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 21

ASP.

NET

Introduction
ASP.NET is Microsoft’s flagship technology for building highly interactive, highly scalable websites. Some of the largest websites
hosted on the Internet were built with the ASP.NET Framework, including Dell (www.Dell.com), MySpace (www.MySpace.com), and
Microsoft (www.Microsoft.com).

If you are using Visual Web Developer or Visual Studio, you first need to create a new website. Start Visual Web Developer and
select the menu option File, New Web Site.

ASP.NET and the .NET Framework


ASP.NET is part of the Microsoft .NET Framework. To build ASP.NET pages, you need to take advantage of the features of the .NET
Framework. The .NET Framework consists of two parts: the Framework Class Library and the Common Language Runtime.

Understanding the Framework Class Library


The .NET Framework contains thousands of classes that you can use when building an application.
The Framework Class Library was designed to make it easier to perform the most common programming tasks. Here are just a few
examples of the classes in the framework:

File class—Enables you to represent a file on your hard drive. You can use the File class to check whether a file exists, create a new
file, delete a file, and perform many other file-related tasks.
Graphics class—Enables you to work with different types of images such as GIF, PNG, BMP, and JPEG images. You can use the
Graphics class to draw rectangles, arcs, ellipsis, and other elements on an image.
Random class—Enables you to generate a random number.
SmtpClient class—Enables you to send email. You can use the SmtpClient class to send emails that contain attachments and HTML
content.
The .NET Framework contains almost 13,000 classes you can use when building applications
Each class in the Framework can include properties, methods, and events. The properties, methods, and events exposed by a class
are the members of a class.

Namespaces
There are almost 13,000 classes in the .NET Framework. This is an overwhelming number. Fortunately, Microsoft divided the
classes in the Framework into separate namespaces. A namespace is simply a category

Understanding the Common Language Runtime


The second part of the .NET Framework is the Common Language Runtime (CLR). The Common Language Runtime is responsible
for executing your application code. When you write an application for the .NET Framework with a language such as C# or Visual
Basic .NET, your source code is never compiled directly into machine code. Instead, the C# or Visual Basic compiler converts your
code into a special language named MSIL (Microsoft Intermediate Language). MSIL looks very much like an object-oriented
assembly language. However, unlike a typical assembly language, it is not CPU specific. MSIL is a low-level and platform-
independent language. When your application actually executes, the MSIL code is “just-in-time” compiled into machine code by the
JITTER (the Just-In-Time compiler). Normally, your entire application is not compiled from MSIL into machine code. Instead, only the
methods that are actually called during execution are compiled. In reality, the .NET Framework understands only one language:
MSIL. However, you can write applications using languages such as Visual Basic .NET and C# for the .NET Framework because the
.NET Framework includes compilers for these languages that enable you to compile your code into MSIL. You can write code for the
.NET Framework using any one of dozens of different languages, including the following:
Ada, Apl, Caml, COBOL, Eiffel, Fortran, Oberon, PERL, Pascal, Python, RPG, Small Talk
The vast majority of developers building ASP.NET applications write the applications in either C# or Visual Basic .NET. Many of the
other .NET languages in the preceding list are academic experiments. Once upon a time, if you wanted too.

Understanding ASP.NET Controls


ASP.NET controls are the heart of the ASP.NET Framework. An ASP.NET control is a .NET class that executes on the server and
renders certain content to the browser. For example, in the first ASP.NET page created at the beginning of this chapter, a Label
control was used to display the current date and time. The ASP.NET framework includes over 70 controls, which enable you to do
everything from displaying a list of database records to displaying a randomly rotating banner advertisement. In this section, you are
provided with an overview of the controls included in the ASP.NET Framework. You also learn how to handle events that are raised
by controls and how to take advantage of View State.

Overview of ASP.NET Controls


The ASP.NET Framework contains over 70 controls. These controls can be divided into eight groups:
Standard Controls—The standard controls enable you to render standard form elements such as buttons, input fields, and labels.
Validation Controls—The validation controls enable you to validate form data before you submit the data to the server. For
example, you can use a RequiredFieldValidator control to check whether a user entered a value for a required input field.
Rich Controls—The rich controls enable you to render things such as calendars, file upload buttons, rotating banner advertisements,
and multi-step wizards.
Data Controls—The data controls enable you to work with data such as database data. For example, you can use these controls to
submit new records to a database table or display a list of database records.
Navigation Controls—The navigation controls enable you to display standard navigation elements such as menus, tree views, and
bread crumb trails.
Login Controls—The login controls enable you to display login, change password, and registration forms.
HTML Controls—The HTML controls enable you to convert any HTML tag.

The first part of the control declaration, the asp: prefix, indicates the namespace for the control. All the standard ASP.NET controls
are contained in the System.Web.UI.
Ex: <asp:TextBox id=”TextBox1” runat=”Server” />

WebControls namespace. The prefix asp: represents this namespace. Next, the declaration contains the name of the control being
declared. In this case, a TextBox control is being declared. This declaration also includes an ID attribute. You use the ID to refer to the
control in the page within your code. Every control must have a unique ID.
The declaration also includes a runat=”Server” attribute. This attribute marks the tag as representing a server-side control.

Understanding View State


The HTTP protocol, the fundamental protocol of the World Wide Web, is a stateless protocol Each time you request a web page from
a website, from the website’s perspective, you are a completely new person. The ASP.NET Framework, however, manages to
transcend this limitation of the HTTP Protoco l.

Understanding Dynamic Compilation


When you create an ASP.NET page, you are actually creating the source code for a .NET class. You are creating a new instance of
the System.Web.UI.Page class. The entire contents of an ASP.NET page, including all script and HTML content, are compiled into a
.NET class. When you request an ASP.NET page, the ASP.NET Framework checks for a .NET class that corresponds to the page. If
a corresponding class does not exist, the Framework automatically compiles the page into a new class and stores the compiled class
(the assembly) in the Temporary ASP.NET Files folder located in developer’s system at the following path:
\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files

The next time anyone requests the same page in the future, the page is not compiled again. The previously compiled class is
executed and the results are returned to the browser. If the ASP.NET page is modified in any way, the corresponding .NET class is
automatically deleted. The next time someone requests the page, the Framework automatically compiles the modified page source
into a new .NET class. This process is called dynamic compilation.

Using Code-Behind Pages


The ASP.NET Framework (and Visual Web Developer) enables you to create two different types of ASP.NET pages. You can create
both single-file and two-file ASP.NET pages. In a single-file ASP.NET page, a single file contains both the page code and page
controls. The page code is contained in a <script runat=”server”> tag.
As an alternative to a single-file ASP.NET page, you can create a two-file ASP.NET page. A two-file ASP.NET page is normally
referred to as a code-behind page. In a code-behind page, the page code is contained in a separate file.
The First One: FirstPageCodeBehind.aspx
Another one is : FirstPageCodeBehind.aspx.cs

Handling Page Events


Whenever you request an ASP.NET page, a particular set of events is raised in a particular sequence. This sequence of events is
called the page execution lifecycle. Here is the sequence of events that are raised whenever you request a page:
1. PreInit 2. Init 3. InitComplete 4. PreLoad 5. Load 6. LoadComplete 7. PreRender 8. PreRenderComplete
9. SaveStateComplete 10. Unload

Using the Page.IsPostBack Property


The Page class includes a property called the IsPostBack property, which you can use to detect whether the page has already been
posted back to the server. Because of View State, when you initialize a control property, you do not want to initialize the property
every time a page loads. Because View State saves the state of control properties across page posts, you typically initialize a control
property only once, when the page first loads.
In fact, many controls don’t work correctly if you re-initialize the properties of the control with each page load. In these cases, you
must use the IsPostBack property to detect whether or not the page has been posted.

void Page_Load()
{
if (!Page.IsPostBack)
TextBox1.Text = “Hello”;
else
TextBox1.Text = “Welcome”;
}
protected void Button1_Click(object sender, EventArgs e)
{
}
Using the Label Control
Whenever you need to modify the text displayed in a page dynamically, you can use the Label control.

The Label control supports several properties you can use to format the text displayed by the Label (this is not a complete list):
BackColor—Enables you to change the background color of the label.
BorderColor—Enables you to set the color of a border rendered around the label.
BorderStyle—Enables you to display a border around the label. Possible values are NotSet, None, Dotted, Dashed, Solid, Double,
Groove, Ridge, Inset, and Outset.
BorderWidth—Enables you to set the size of a border rendered around the label.
CssClass—Enables you to associate a Cascading Style Sheet class with the label.
Font—Enables you to set the label’s font properties.
ForeColor—Enables you to set the color of the content rendered by the label.
Style—Enables you to assign style attributes to the label.
ToolTip—Enables you to set a label’s title attribute.
Text—Enables you to provide a text for a control to display
TextAlign—Enables you to align the label for the check box. Possible values are Left and Right.

Accepting User Input


The ASP.NET Framework includes several controls that you can use to gather user input. In this section, you learn how to use the
TextBox, CheckBox, and RadioButton controls. These controls correspond to the standard types of HTML input tags.

Using the TextBox Control


The TextBox control can be used to display three different types of input fields depending on the value of its TextMode property. 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.
AccessKey—Enables you to specify a key that navigates to the TextBox control.
AutoCompleteType—Enables you to associate an AutoComplete class with the TextBox control.
AutoPostBack—Enables you to post the form containing the TextBox back to the server automatically when the contents of the
TextBox is changed.
Columns—Enables you to specify the number of columns to display.
Enabled—Enables you to disable the text box.
MaxLength—Enables you to specify the maximum length of data that a user can enter in a text box
ReadOnly—Enables you to prevent users from changing the text in a text box.
Rows—Enables you to specify the number of rows to display.
TabIndex—Enables you to specify the tab order of the text box.
Wrap—Enables you to specify whether text word-wraps when the TextMode is set to Multiline.

The TextBox control also supports the following method:


Focus—Enables you to set the initial form focus to the text box. And, the TextBox control supports the following event:
TextChanged—Raised on the server when the contents of the text box are changed. When the AutoPostBack property has the value
True, the form containing the TextBox is automatically posted back to the server when the contents of the TextBox changes.

Using the CheckBox Control


The CheckBox control enables you to display, well, a check box.

The CheckBox control supports the following properties


Checked—Enables you to get or set whether the CheckBox is checked.
The CheckBox control also supports the following method:
Focus—Enables you to set the initial form focus to the check box. And, the CheckBox control supports the following event:
CheckedChanged—Raised on the server when the check box is checked or unchecked.

Using the RadioButton Control


You always use the RadioButton control in a group. Only one radio button in a group of RadioButton controls can be checked at a time.

The RadioButton control supports the following properties


GroupName—Enables you to group RadioButton controls.

Using the Button Control


The Button control renders a push button that you can use to submit a form to the server.
The Button control supports the following extra properties.
CommandArgument—Enables you to specify a command argument that is passed to the Command event.
CommandName—Enables you to specify a command name that is passed to the Command event.
OnClientClick—Enables you to specify a client-side script that executes when the button is clicked.
PostBackUrl—Enables you to post a form to a particular page.
UseSubmitBehavior—Enables you to use JavaScript to post a form.
The Button control also supports the following method:
Focus—Enables you to set the initial form focus to the Button control.
The Button control also supports the following two events:
Click—Raised when the Button control is clicked.
Command—Raised when the Button control is clicked. The CommandName and CommandArgument are passed to this event.

Using the LinkButton Control


The LinkButton control, like the Button control, enables you to post a form to the server. Unlike a Button control, however, the LinkButton
control renders a link instead of a push button.

Using the ImageButton Control


The ImageButton control, like the Button and LinkButton controls, enables you to post a form to the server. However, the ImageButton
control always displays an image.
ImageAlign—Enables you to align the image relative to other HTML elements in the page. Possible values are AbsBottom, AbsMiddle,
Baseline, Bottom, Left, Middle, NotSet, Right, TextTop, and Top.
ImageUrl—Enables you to specify the URL to the image.

Using Client Scripts with Button Controls


All three Button controls support an OnClientClick property. You can use this property to execute any client-side code that you need
when a button is clicked.

ButtonOnClientClick.aspx
Displaying a client-side confirmation dialog box.
OnClick=”btnDelete_Click”
OnClientClick=”return confirm(‘Are you sure?’);”

Performing Cross-Page Posts


By default, if you click a button control, the page containing the control is posted back to itself and the same page is reloaded.
However, you can use the PostBackUrl property to post form data to another page.
PostBackUrl=”ButtonSearchResults.aspx”

Get Value of Previous Page control


void Page_Load()
{
if (PreviousPage != null)
{
TextBox txtSearch = (TextBox)PreviousPage.FindControl(“txtSearch”);
lblSearch.Text = String.Format(“Search For: {0}”, txtSearch.Text);
}
}
In the Page_Load event handler, the PreviousPage property is used to get a reference to the previous page, the FindControl() method is
used to retrieve the txtSearch TextBox control from the previous page. And the value entered into the TextBox of previous is displayed in
a label on the current page.

Using the Image Control


The image is displayed by setting the ImageUrl property of the Image control contained in the body of the page. The Image control
supports the following properties (this is not a complete list):
AlternateText—Enables you to provide alternate text for the image (required for accessibility).
DescriptionUrl—Enables you to provide a link to a page that contains a detailed description of the image (required to make a
complex image accessible).
GenerateEmptyAlternateText—Enables you to set the AlternateText property to an empty string.
ImageAlign—Enables you to align the image relative to other HTML elements in the page. Possible values are AbsBottom, AbsMiddle,
Baseline, Bottom, Left, Middle, NotSet, Right, TextTop, and Top.
ImageUrl—Enables you to specify the URL to the image.

Using the ImageMap Control


The ImageMap control enables you to create a client-side image map. An image map displays an image. When you click different
areas of the image, things happen
An ImageMap control is composed out of instances of the HotSpot class. A HotSpot defines the clickable regions in an image map. The
ASP.NET framework ships with three HotSpot classes:
CircleHotSpot—Enables you to define a circular region in an image map.
PolygonHotSpot—Enables you to define an irregularly shaped region in an image map.
RectangleHotSpot—Enables you to define a rectangular region in an image map.
AccessKey—Enables you to specify a key that navigates to the ImageMap control.
AlternateText—Enables you to provide alternate text for the image (required for accessibility).
DescriptionUrl—Enables you to provide a link to a page which contains a detailed description of the image (required to make a
complex image accessible).
GenerateEmptyAlternateText—Enables you to set the AlternateText property to an empty string.
HotSpotMode—Enables you to specify the behavior of the image map when you click a region. Possible values are Inactive, Navigate,
NotSet, and PostBack.
HotSpots—Enables you to retrieve the collection of HotSpots contained in the ImageMap control.
ImageAlign—Enables you to align the image map with other HTML elements in the page. Possible values are AbsBottom, AbsMiddle,
Baseline, Bottom, Left, Middle, NotSet, Right, TextTop, and Top.
ImageUrl—Enables you to specify the URL to the image.
Target—Enables you to open a page in a new window.
The ImageMap control also supports the following method:
Focus—Enables you to set the initial form focus to the ImageMap control.
The ImageMap control supports the following event:
Click—Raised when you click a region of the ImageMap and the HotSpotMode property is set to the value PostBack.

Using the Panel Control


The Panel control enables you to work with a group of ASP.NET controls.
The Panel control supports the following properties
DefaultButton—Enables you to specify the default button in a Panel. The default button is invoked when you press the Enter button.
Direction—Enables you to get or set the direction in which controls that display text are rendered. Possible values are NotSet,
LeftToRight, and RightToLeft.
GroupingText—Enables you to render the Panel control as a field set with a particular legend.
HorizontalAlign—Enables you to specify the horizontal alignment of the contents of the Panel. Possible values are Center, Justify,
Left, NotSet, and Right.
ScrollBars—Enables you to display scrollbars around the panel’s contents. Possible values are Auto, Both, Horizontal, None, and
Vertical.

Using the HyperLink Control


The HyperLink control enables you to create a link to a page. Unlike the LinkButton control, the HyperLink control does not submit a form
to a server.
You can specify an image for the HyperLink control by setting the ImageUr property. If you set both the Text and ImageUrl properties,
then the ImageUrl property takes precedence.

Overview of the Validation Controls


Six validation controls are included in the ASP.NET 3.5 Framework:
RequiredFieldValidator—Enables you to require a user to enter a value in a form field.
RangeValidator—Enables you to check whether a value falls between a certain minimum and maximum value.
CompareValidator—Enables you to compare a value against another value or perform a data type check.
RegularExpressionValidator—Enables you to compare a value against a regular expression.
CustomValidator—Enables you to perform custom validation.
ValidationSummary—Enables you to display a summary of all validation errors in a page.

Using the RequiredFieldValidator Control


The RequiredFieldValidator control enables you to require a user to enter a value into a form field before submitting the form. You must
set two important properties when using the RequiredFieldValdiator control:
ControlToValidate—The ID of the form field being validated.
Text—The error message displayed when validation fails.

Using the RangeValidator Control


The RangeValidator control enables you to check whether the value of a form field falls between a certain minimum and maximum
value. You must set five properties when using this control:
ControlToValidate—The ID of the form field being validated.
Text—The error message displayed when validation fails.
MinimumValue—The minimum value of the validation range.
MaximumValue—The maximum value of the validation range.
Type—The type of comparison to perform. Possible values are String, Integer, Double, Date, and Currency.

Using the CompareValidator Control


The CompareValidator control enables you to perform three different types of validation tasks. You can use the CompareValidator to
perform a data type check. In other words, you can use the control to determine whether a user has entered the proper type of value
into a form field.
The CompareValidator has six important properties:
ControlToValidate—The ID of the form field being validated.
Text—The error message displayed when validation fails.
Type—The type of value being compared. Possible values are String, Integer, Double, Date, and Currency.
Operator—The type of comparison to perform. Possible values are DataTypeCheck, Equal, GreaterThan, GreaterThanEqual, LessThan,
LessThanEqual, and NotEqual.
ValueToCompare—The fixed value against which to compare.
ControlToCompare—The ID of a control against which to compare.

The page contains a birth date field. If you enter a value that is not a date, then the validation error message is displayed

You can also use the CompareValidator to perform a comparison against a fixed value.

Finally, you can use a CompareValidator to compare the value of one form field against another form field.

Using the RegularExpressionValidator Control


The RegularExpressionValidator control enables you to compare the value of a form field against a regular expression. You can use a
regular expression to represent string patterns such as email addresses, Social Security numbers, phone numbers, dates, currency
amounts, and product codes.

The regular expression is assigned to the RegularExpressionValidator control’s ValidationExpression property.


It looks like this:
\w+([-+.’]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
This pattern matches a simple email address.
The \w expression represents any non-whitespace character. Therefore, roughly, this regular expression matches an email address
that contains non-whitespace characters, followed by an @ sign, followed by non-whitespace characters, followed by a period,
followed by more non-whitespace characters.

Using the CustomValidator Control


If none of the other validation controls perform the type of validation that you need, you can always use the CustomValidator control.
You can associate a custom validation function with the CustomValidator control.
The CustomValidator control has three important properties:
ControlToValidate—The ID of the form field being validated.
Text—The error message displayed when validation fails.
ClientValidationFunction—The name of a client-side function used to perform client-side validation.
The CustomValidator also supports one event:
ServerValidate—This event is raised when the CustomValidator performs validation. You associate your custom validation function
with the CustomValidator control by handling the ServerValidate event.

The second parameter passed to the ServerValidate event handler is an instance of the ServerValidateEventArgs class. This class has
properties:
Value—Represents the value of the form field being validated.
IsValid—Represents whether validation fails or succeeds.
ValidateEmptyText—Represents whether validation is performed when the form field being validated does not contain a value.
Ex: Contains a timed test. If you don’t answer the question within five seconds, then the CustomValidator control displays a validation
error message

Using the ValidationSummary Control


The ValidationSummary control enables you to display a list of all the validation errors in a page in one location. This control is
particularly useful when working with large forms. If a user enters the wrong value for a form field located toward the end of the page,
then the user might never see the error message. If you use the ValidationSummary control, however, you can always display a list of
errors at the top of the form. You might have noticed that each of the validation controls includes an ErrorMessage
property. We have not been using the ErrorMessage property to represent the validation error message. Instead, we have used the
Text property. The distinction between the ErrorMessage and Text property is that any message that you assign to the ErrorMessage
property appears in the ValidationSummary control, and any message that you assign to the Text property appears in the body of the
page. Normally. The message assigned to the ErrorMessage property, on the other hand, should identify the form field.

The ValidationSummary control supports the following properties:


DisplayMode—Enables you to specify how the error messages are formatted. Possible values are BulletList, List, and SingleParagraph.
HeaderText—Enables you to display header text above the validation summary.
ShowMessageBox—Enables you to display a popup alert box.
ShowSummary—Enables you to hide the validation summary in the page.
If you set the ShowMessageBox property to the value True and the ShowSummary property to the value False, then you can display the
validation summary only within a popup alert box.
Master Pages
 a common page layout
 display common content in multiple pages
 create the standard header and footer in a Master Page.
 can make website easier to maintain, extend, and modify
 modify just a single Master Page to dramatically change the appearance of all the pages in
your application

Creating Master Pages


 creating a file that ends with the .master extension
 file contains a <%@ Master %> directive instead of the normal <%@ Page %> directive
 notice that the Master Page includes two ContentPlaceHolder controls.
 locate a Master Page file any place within an application
 can add multiple Master Pages to the same application
 add as many ContentPlaceHolders to a Master Page
 one cannot apply a theme to a Master Page.
 Each ContentPlaceHolder control is contained in a separate <div> tag
 The Master Page uses Cascading Style Sheets to create the page layout.
 in a web browser, the contents of the page are merged with the Master Page
 one can create multiple levels of Master Pages
 The Master Page is applied only to content pages. If a page does not contain any Content
controls—it is a normal ASP.NET page
 Can be associate different Master Pages dynamically with a content page

Registering Master Pages in Web Configuration


a Master Page to every content page in a particular folder or every content page in an entire
application
<configuration>
<system.web>
<pages masterPageFile=”~/SimpleMaster.master” />
</system.web>
</configuration>
Themes
 A Master Page enables you to share content across multiple pages in a website.
 A Theme, on the other hand, enables you to control the appearance of the content.
 Themes makes it very easy to modify the design of an existing website.
 Cascading Style Sheets enable you to control the appearance and layout of pages in a
website in a standards compliant manner.
 Global Themes, which can be used by multiple applications located on the same server
Creating Themes
 You create a Theme by adding a new folder to a special folder in your application named
App_Themes.
 Each folder that you add to the App_Themes folder represents a different Theme.
 It must be located in the root of application.
 using Visual Web Developer, you can create a new Theme folder by right-clicking the name
of your project in the Solution Explorer window and selecting Add Folder, Theme Folder.
 A Theme folder can contain a variety of different types of files, including images and text
files.

 The most important types of files in a Theme folder are the following:
. Skin files
. Cascading Style Sheet files

Adding Skins to Themes


A Theme can contain one or more Skin files.
A Skin enables you to modify any of theproperties of an ASP.NET control that have an effect on its
appearance.
we created something called a Default Skin.
option of creating a Named Skin.
<asp:TextBox SkinID=”DashedTextBox” BorderStyle=”Dashed” BorderWidth=”5px” Runat=”Server” />
A Theme can contain only one Default Skin for each type of control. However, a Theme can contain
as many Named Skins as you please. Each Named Skin must have a unique name.
Theme to a page, the Skins in the Theme override any existing properties of the controls in the
page.
One can override Skin properties by applying a Theme to a page with the StyleSheetTheme attribute
instead of the Theme attribute.
Disabling Themes
Every ASP.NET control includes an EnableTheming property. You can use the EnableTheming
property to prevent a Skin from being applied to a particular control in a page.
Registering Themes in the Web Configuration File
Rather than add the Theme or StyleSheetTheme attribute to each and every page to which one want
to apply a Theme, you can register a Theme for all pages in your application in the web
configuration file.
<configuration> <system.web> <pages theme=”Site” /> </system.web> </configuration>
<configuration> <system.web> <pages styleSheetTheme=”Site” /> </system.web> </configuration>

Adding Cascading Style Sheets to Themes


As an alternative to Skins, you can use a Cascading Style Sheet file to control the appearance of
both the HTML elements and ASP.NET controls contained in a page. If you add a Cascading Style
Sheet file to a Theme folder, then the Cascading Style Sheet is automatically applied to every page
to which the Theme is applied.
App_Themes\StyleTheme\SimpleStyle.css
html
{
background-color:gray;
font:14px Georgia,Serif;
}
.content
{
margin:auto;
width:600px;
border:solid 1px black;
background-color:White;
padding:10px;
}
h1
{
color:Gray;
font-size:18px;
border-bottom:solid 1px orange;
}
label
{
font-weight:bold;
}

input
{
background-color:Yellow;
border:double 3px orange;
}
.button
{
background-color:#eeeeee;
}
Global.asax
Every web application created in VS.NET creates a file called 'global.asax' and 2 related files called
'global.asax' and 'global.asax.resx'. The files global.asax is a replacement for the global.asa file used in
classic ASP.
Global.asax.cs is the code behind file for he global.asax. This file is used to handle global events in the web
application.
If a page level event happens, it can be handled in code behind file of the corresponding page. But there are
couple of events which are not specific to any page. These events are applicable to the entire application.

Web.config for Web applications


The web applications use the same concept, but they use a config file with the name web.config.
There are couple of things to note in this case.
* web.config is created automatically by ASP.NET when you create any web project.
* When you compile the web application, web.config is NOT renamed or copied to the BIN folder.
* web.config has several default entries in it to support web/IIS configuration & security.
* You can add the <appSettings> section in the web.config and add your key/value pairs in that
section.
* You can have separate web.config files for each directory in your web application, in addition to
the one in the root. For each web page, by default, system will look for a web.config in the same
folder as the page and if not found, then looks in the parent folder.
You can store and retrieve key/value pairs in the web.config file just like the app.config files:
<?xml version="1.0" encoding= "utf-8" ?>
<configuration>
<appSettings>
<add key="DatabasePath" value="c:\\projects\data\tutorials.mdb" />
</appSettings>
</configuration>
Hidden Field
a.html
<form method = "post" action =Default.aspx>
<input type =hidden name = t1 value = "Manish" />
<input type =hidden name = t1 value = "Sodhani" />
<input type =submit name = b1 value = "Click" />
</form>
Default.aspx
protected void Page_Load(object sender, EventArgs e)
{
String []a= Request.Form.GetValues("t1");
TextBox1.Text = a[0];
TextBox2.Text = a[1];
}

QueryString
Default.aspx

protected void Button1_Click(object sender, EventArgs e)


{
Response.Redirect("Default2.aspx?recordID=10&mode=full");
}
Default2.aspx
protected void Page_Load(object sender, EventArgs e)
{
String ID = Request.QueryString ["recordID"];
String mode = Request.QueryString["mode"];
TextBox1.Text = ID;
TextBox2.Text = mode;
}
Application State
create a Global.asax
void Application_Start(object sender, EventArgs e)
{
Application["HitCounterForOrderPage"]=1;
}
Default3.aspx
protected void Page_Load(object sender, EventArgs e)
{ int Count;
Count = (int)Application["HitCounterForOrderPage"];
Count += 1;
Application["HitCounterForOrderPage"] = Count;
Label1.Text = Count.ToString();

View State
int Counter;

protected void Button1_Click(object sender, EventArgs e)


{
if (ViewState["Counter"] ==null)
Counter = 1;
else
Counter = (int)ViewState["Counter"] +1 ;
ViewState["Counter"] = Counter;
Label2.Text = "Counter: " + Counter.ToString();
}
Authentication
ASP.NET has built in authentication support for web page development making it really easy for
any web developer to add personalized webpages or password-protect areas.
There are three types of authentication in ASP.NET: forms authentication, windows
authentication, and Passport authentication.
Windows Authentication - This is provided so that web pages can make use of the local
Windows User and Groups.
Passport Authentication - This is Microsoft's initiative for a single authentication point. It is used
for such things as Hotmail, MSN and Devhood.
Forms Authentication - This is a cookie based authentication system where the username and
passport is stored in a text file or a database. We will be focusing on this authentication model

ASP.NET Membership to authenticate users, create new users, and change user properties.
Login—Enables you to display a user login form.
CreateUserWizard—Enables you to display a user registration form.
LoginStatus—Enables you to display either a log in or log out link, depending on a user’s
authentication status.
LoginName—Enables you to display the current user’s registered username.
ChangePassword—Enables you to display a form that allows users to change their passwords.
PasswordRecovery—Enables you to display a form that allows a user to receive an email
containing his or her password.
LoginView—Enables you to display different content to different users depending on the user’s
authentication status or role.

Threads
ASP.NETs pipeline request architecture tries to achieve a balance between the number of
threads executing requests and available resources.
Buffer
Buffering is on by default in ASP.NET.
Garbage Collector

The garbage collector (GC) is a great feature in the CLR that helps performance on the server. A
primary concern for anyone doing server programming is the fragmentation of the heap over a
period of time. With the copy-and-collect type of garbage collection in the CLR, one gets heap
compacting for free. And because the heap is multi-processor aware, with self-tuning capabilities,
its performance tends to be better than self-managed heaps.

Web Site Navigation


Maintaining the menu of a large web site is difficult and time consuming.

In ASP.NET 2.0 the menu can be stored in a file to make it easier to maintain. This file is normally called
web.sitemap, and is stored in the root directory of the web.

In addition, ASP.NET 2.0 has three new navigation controls:

 Dynamic menus
 TreeViews
 Site Map Path

The Sitemap File


The following sitemap file is used in this tutorial:

<?xml version="1.0" encoding="ISO-8859-1" ?>


<siteMap>
<siteMapNode title="Home" url="/aspnet/w3home.aspx">
<siteMapNode title="Services" url="/aspnet/w3services.aspx">
<siteMapNode title="Training" url="/aspnet/w3training.aspx"/>
<siteMapNode title="Support" url="/aspnet/w3support.aspx"/>
</siteMapNode>
</siteMapNode>
</siteMap>

Rules for creating a sitemap file:

 The XML file must contain a <siteMap> tag surrounding the content
 The <siteMap> tag can only have one <siteMapNode> child node (the "home" page)
 Each <siteMapNode> can have several child nodes (web pages)
 Each <siteMapNode> has attributes defining page title and URL

Note: The sitemap file must be placed in the root directory of the web and the URL attributes must be
relative to the root directory.

Dynamic Menu
The <asp:Menu> control displays a standard site navigation menu.
Code Example:
<asp:SiteMapDataSource id="nav1" runat="server" />

<form runat="server">
<asp:Menu runat="server" DataSourceId="nav1" />
</form>
The <asp:Menu> control in the example above is a placeholder for a server created navigation menu.

The data source of the control is defined by the DataSourceId attribute. The id="nav1" connects it to the
<asp:SiteMapDataSource> control.

The <asp:SiteMapDataSource> control automatically connects to the default sitemap file (web.sitemap).

TreeView
The <asp:TreeView> control displays a multi level navigation menu.

The menu looks like a tree with branches that can be opened or closed with + or - symbol.

Code Example:

<asp:SiteMapDataSource id="nav1" runat="server" />


<form runat="server">
<asp:TreeView runat="server" DataSourceId="nav1" />
</form>

The <asp:TreeView> control in the example above is a placeholder for a server created navigation menu.
The data source of the control is defined by the DataSourceId attribute. The id="nav1" connects it to the
<asp:SiteMapDataSource> control.

The <asp:SiteMapDataSource> control automatically connects to the default sitemap file (web.sitemap).

SiteMapPath
The SiteMapPath control displays the trail (navigation path) to the current page. The path acts as clickable
links to previous pages.

Unlike the TreeView and Menu control the SiteMapPath control does NOT use a SiteMapDataSource. The
SiteMapPath control uses the web.sitemap file by default.

Tips: If the SiteMapPath displays incorrectly, most likely there is an URL error (typo) in the
web.sitemap file.

Code Example:

<form runat="server">
<asp:SiteMapPath runat="server" />
</form>

The <asp:SiteMapPath> control in the example above is a placeholder for a server created site path
display.

What is ADO.NET?
 ADO.NET is a part of the .NET Framework
 ADO.NET consists of a set of classes used to handle data access
 ADO.NET is entirely based on XML
 ADO.NET has, unlike ADO, no Recordset object

Create a Database Connection


We are going to use the Northwind database in our examples.

First, import the "System.Data.OleDb" namespace. We need this namespace to work with Microsoft
Access and other OLE DB database providers. We will create the connection to the database in the
Page_Load subroutine. We create a dbconn variable as a new OleDbConnection class with a connection
string which identifies the OLE DB provider and the location of the database. Then we open the database
connection:

<%@ Import Namespace="System.Data.OleDb" %>

<script runat="server">
sub Page_Load
dim dbconn
dbconn=New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;data source=" &
server.mappath("n.mdb"))
dbconn.Open()
end sub
</script>

Note: The connection string must be a continuous string without a line break!

Create a Database Command


To specify the records to retrieve from the database, we will create a dbcomm variable as a new
OleDbCommand class. The OleDbCommand class is for issuing SQL queries against database tables:

<%@ Import Namespace="System.Data.OleDb" %>

<script runat="server">
sub Page_Load
dim dbconn,sql,dbcomm
dbconn=New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;data source=" &
server.mappath("n.mdb"))
dbconn.Open()
sql="SELECT * FROM customers"
dbcomm=New OleDbCommand(sql,dbconn)
end sub
</script>

Create a DataReader
The OleDbDataReader class is used to read a stream of records from a data source. A DataReader is
created by calling the ExecuteReader method of the OleDbCommand object:

<%@ Import Namespace="System.Data.OleDb" %>

<script runat="server">
sub Page_Load
dim dbconn,sql,dbcomm,dbread
dbconn=New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;
data source=" & server.mappath("northwind.mdb"))
dbconn.Open()
sql="SELECT * FROM customers"
dbcomm=New OleDbCommand(sql,dbconn)
dbread=dbcomm.ExecuteReader()
end sub
</script>

Close the Database Connection


Always close both the DataReader and database connection after access to the database is no longer
required:

dbread.Close()
dbconn.Close()
Bind to a Repeater Control
Then we bind the DataReader to a Repeater control:

Example
<%@ Import Namespace="System.Data.OleDb" %>

<script runat="server">
sub Page_Load
dim dbconn,sql,dbcomm,dbread
dbconn=New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;
data source=" & server.mappath("northwind.mdb"))
dbconn.Open()
sql="SELECT * FROM customers"
dbcomm=New OleDbCommand(sql,dbconn)
dbread=dbcomm.ExecuteReader()
customers.DataSource=dbread
customers.DataBind()
dbread.Close()
dbconn.Close()
end sub
</script>
<html>
<body>
<form runat="server">
<asp:Repeater id="customers" runat="server">
<HeaderTemplate>
<table border="1" width="100%">
<tr>
<th>Companyname</th>
<th>Contactname</th>
<th>Address</th>
<th>City</th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td><%#Container.DataItem("companyname")%></td>
<td><%#Container.DataItem("contactname")%></td>
<td><%#Container.DataItem("address")%></td>
<td><%#Container.DataItem("city")%></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
</form>
</body>
</html>
Insert a record

void Page_Load(Object sender , EventArgs e)


{
SqlConnection conNorthwind;
string strInsert;
SqlCommand cmdInsert;

conNorthwind = new SqlConnection( @"Server=localhost;Integrated


Security=SSPI;database=mydata" );
strInsert = "Insert Products ( ProductName, UnitPrice ) Values ('Lux', 12.45 )";
cmdInsert = new SqlCommand( strInsert, conNorthwind );
conNorthwind.Open();
cmdInsert.ExecuteNonQuery();
conNorthwind.Close();
Response.Write("New Product Added!");
}

Select and display


<%@ Page Language="C#"%>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>

<script runat=server>

void Button_Click(Object sender , EventArgs e)


{
SqlConnection conPubs;
string strSelect;
SqlCommand cmdSelect;

conPubs = new SqlConnection( @"server=localhost;Integrated Security=SSPI;Database=exam" );


strSelect = "Select phone From login Where uname=@nm AND pass=@upass";
cmdSelect = new SqlCommand( strSelect, conPubs );

cmdSelect.Parameters.Add( "@uname", txtuname.Text );


cmdSelect.Parameters.Add( "@pname", txtpname.Text );

conPubs.Open();
object ret = cmdSelect.ExecuteScalar();
if (ret!=null) {
lblPhone.Text = ret.ToString();
} else {
lblPhone.Text = " not found.";
}
conPubs.Close();
}
FormView is a data-bound user interface control that renders a single record at a time from its
associated data source, optionally providing paging buttons to navigate between records. It is
similar to the DetailsView control, except that it requires the user to define the rendering of each
item using templates, instead of using data control fields.

The main difference between DetailsView and FormView is that DetailsView has a built-in tabular
rendering, whereas FormView requires a user-defined template for its rendering. The FormView
and DetailsView object model are very similar otherwise.
The DetailsView control binds to a data source control. The data source control handles the
details of connecting to a data store and returning the selected data. Binding the DetailsView
control to data is as simple as setting the DataSourceID property declaratively. Also, the code
option is available.

The operations will depend upon the data source, but the DetailsView control allows you to page,
update, insert, and delete data from the underlying data source, as long at the operations are
allowed by the underlying data source and respective SQL commands are defined. In keeping
with the GridView control, the DetailsView control can easily be used without code.

GridView is the way to go for you. It will display tabular data (rows/columns) for you with options for
paging and sorting.

FormView and DetailsView is used as "properties" forms, like something that shows the details when you
have clicked on one of the items in the (GridView) list.

The difference between FormView and DetailsView is that FormView is template-based, so you have
more control over how the data is rendered.

1)datagrid and gridview both have same functionality to display your data in the form of a table.
Datagrid is used in Windows Application whereas gridview is used in Web Applications.

2)The Repeater control is used to display a repeated list of items that are bound to the control.

3)The DataList control is, like the Repeater control, used to display a repeated list of items that
are bound to the control. However, the DataList control adds a table around the data items by
default.

4)FormView is a data-bound user interface control that renders a single record at a time from its
associated data source, optionally providing paging buttons to navigate between records.

5)DetailsView is a data-bound user interface control that renders a single record at a time from its
associated data source, optionally providing paging buttons to navigate between records. It is
similar to the Form View of an Access database, and is typically used for updating and/or
inserting new records. It is often used in a master-details scenario where the selected record of
the master control (GridView, for example) determines the DetailsView display record.
GridVIew :
--------
The GridView control is the workhorse of the ASP.NET 2.0 Framework. It is one of the most
feature-rich and complicated of all the ASP.NET controls. The GridView control enables you to
display, select, sort, page, and edit data items such as database records.

You also get the chance to tackle several advanced topics. For example, we can highlight certain
rows in a GridView depending on the data the row represents.
DetailsView and FormView Controls :
----------- --- -------- --------
The DetailsView and FormView controls, these controls enable us to work with a single data item
at a time. Both controls enable you to display, edit, insert, and delete data items such as
database records. Furthermore, both controls enable you to page forward and backward through
a set of data items.

The difference between the two controls concerns the user interface that the controls render. The
DetailsView control always renders each field in a separate HTML table row. The FormView
control, on the other hand, uses a template that enables you to completely customize the user
interface rendered by the control.

A DetailsView control renders an HTML table that displays the contents of a single database
record. The DetailsView supports both declarative and programmatic databinding.
You can use the FormView control to do anything that you can do with the DetailsView control.
Just as you can with the DetailsView control, you can use the FormView control to display, page,
edit, insert, and delete database records. However, unlike the DetailsView control, the FormView
control is entirely template driven
The FormView control provides you with more control over the layout of a form. Furthermore,
adding validation controls to a FormView is easier than adding validation controls to a
DetailsView control.
Repeater and DataList Controls :
-------- --- -------- --------
Both the Repeater and DataList controls helps us to display a set of data items at a time. For
example, you can use these controls to display all the rows contained in a database table.

The Repeater control is entirely template driven. You can format the rendered output of the
control in any way that you please. For example, you can use the Repeater control to display
records in a bulleted list, a set of HTML tables, or even in a comma-delimited list.

The DataList control is also template driven. However, unlike the Repeater control, the default
behavior of the DataList control is to render its contents into an HTML table. The DataList control
renders each record from its data source into a separate HTML table cell.
The Repeater control provides you with the maximum amount of flexibility in rendering a set of
database records. You can format the output of the Repeater control in any way that you please.
The DataList control, like the Repeater control, is template driven. Unlike the Repeater control, by
default, the DataList renders an HTML table. Because the DataList uses a particular layout to
render its content, you are provided with more formatting options when using the DataList control.
GridView is new version and extension of earlier asp.net 1.1 Gridview in ASP.NET 2.0 and
onwards versions.
GridView is used for control, editing data, your own custom template, sorting kind of scenarios
but you can not customize everything.
Repeater – Repeater is used when you want to just read your data, Read Only but here you can
customize everything, repeater provide full control for UI.
DetailsView -
DetailView mostly used with GridView for Master Detail relationship, where master details are
shown using GridView and when you click a particular row, you can show further details of
individual row using DetailView either at the same page or at separate page. Here you can read,
edit and create (add a new row/record)
FormView - Read/Edit/Create FormView is more over same as detailsview and used similarly.
DataList - Read/Edit

You might also like