ASP.NET Page Lifecycle


Understanding Page lifecycle is very crucial in order to develop ASP.NET applications. Most beginners tend to get confused while dealing with “dynamic controls” and face problems like losing values, state etc on postbacks. Since HTTP is stateless, the nature of web programming is inherently different from windows application development, and the Page lifecycle is one of the primary building blocks while learning ASP.NET. The sequence of events, especially while working with MasterPages in ASP.NET 2.0, has become slightly more complex and this article is aims to shed some light on these events by explaining the order and importance of each event.


Whenever the user requests a particular “.aspx” page in an application, a lot of interesting things happen on the web server where the application is hosted. Understanding this sequence of events will help us to program and respond to events properly and also clear any confusion which generally arises due to the stateless nature of web programming.

The New Compilation Model and the Partial Classes

Each web form in an ASP.NET application derives directly or indirectly from a “System.Web.UI.Page” class. A web form has two components: a code behind file (Default.aspx.cs) which contains the code for the events and other methods related to a Page, and the designer ASPX file(Default.aspx), which contains HTML control declarations and events (in the Visual Studio 2005 Web Application project model, we have a designer class named WebForm.aspx.designer.cs).

In ASP.NET 2.0, we do not need to define the control variables as well as there event handlers in the code behind, thanks to Partial classes. In ASP.NET 1.x, all this code was auto generated and placed in the code behind file under InitializeComponent() section. But in version 2.0, the runtime will create a partial class dynamically from the ASPX page containing all this info and merge it with the code behind partial class. This will help in making the actual code behind class a lot cleaner and more manageable.

Also, this would eliminate the name change related issues which were common in VS 2003 (if we change any control’s ID, it had to be changed everywhere and VS used to modify the code many times). All control related events are defined in the ASPX markup code. So having a single place for controls names and event handlers is cleaner and flexible, whereas the previous VS 2003 model was more “brittle”.

The Page life cycle

It is very important to know that for each request, the Page class is instantiated everytime from “scratch”. Which means that any values or whatever state it had previously will get lost unless we use one of the various state maintainance mechanisms provided by ASP.NET like Application, Session, Cache variables or Cookies.

Side Note: View state in ASP.NET 2.0 has changed and now comprises of two parts: Control State and View state. Refer this article for details.

Below is the sequence of events which fire up sequentially with explanation on the relative importance with respect to web programming in code behind:

1. PreInit()

In this Page level event, all controls created during design time are initialized with their default values. For e.g., if you have a TextBox control with Text property = “ShivaSoft”, it would be set by now. We can create dynamic controls here.

This event occurs only for the Page class and “UserControls / MasterPages do not have this method to override“.

Sample code where you can override this method :

Syntax :

    protected override void OnPreInit(EventArgs e)
        //custom code

Note that PreInit() is the only event where we can set themes programmatically.

Default Submit button in ASPX or Master Page

In ASPX page, if there is only one button one which postback is done then there is no problem. However in a case when there are lots of button in page the how you will tell aspx page that which button’s event is default?

To solve that we have to use the “defaultButton” attribute of the “form” tag as shown in below code snap:

<form id="form1" runat="server" defaultbutton = "imgSearch" >
<asp:ImageButton Visible="true" ID="imgSearch" runat="server"/>
<asp:ImageButton Visible="true" ID="imgDelete" runat="server"/>

In above code, the string value supplied to argument “DefaultButton” is the ID of the button control which should made default.

Tutorial – Read and export excel file in ASP.Net using C#

Hi Readers,
In this article, i am going to show you that how to read excel file in C# and exporting it into ASP.Net. You might need this type of code when you want to read the file from server and export to the client.
Following will be the application look like :

Read And Export Excel in ASP.Net
Read And Export Excel in ASP.Net

What is ODBC and OLEDB – Interview Question

Open Database Connectivity (ODBC) :

How ODBC Works
How ODBC Works

In computing, Open Database Connectivity (ODBC) provides a standard software interface for accessing database management systems (DBMS). The designers of ODBC aimed to make it independent of programming languages, database systems, and operating systems. Thus, any application can use ODBC to query data from a database, regardless of the platform it is on or DBMS it uses.

What is managed and unmanaged code

Visual Studio have made the life of developer very easy by providing the powerful interfaced IDE which helps to create the applications faster than any other technology. We all remember the coding in Turbo C compiler in which the output produced is “machine level language“.

Before Visual studio 2003, the output produced by the compilers were machine level language which can be pronounced as “UnManaged code“. Machine level language compiles and run on same machine or machine having same chip or configuration but it is not sure that it will run on another machine.

After Visual studio 2003, the output produced by the compilers of C# and VB were not “machine level language”, instead it was “Intermediate Language” with some metadata info which is executed by the “Common Language Runtime (CLR)“. so we can say that output produced by the compilers of C# and VB after Visual studio 2003 is “Managed Code“.

To read more on this topic, please refer below good articles:

  1. What is Managed Code ?
  2. Managed, Unmanaged, Native.
Categorized as c# Tagged ,

Telerik Controls – CSS Lost on Page Postback

After long time i am writing this tips on my blog.
This is very small but usefull trick about telerik controls.

Telerik controls like “Tree View”, runs fine in Internet explorer but it fails loading CSS in Mozilla or chrome. To overcome this, use below line of code in Page_Load method.

protected void Page_Load(object sender, EventArgs e)
RadTreeView1.EnableAjaxSkinRendering = true;

I hope this would help. 🙂

DataGrid, GridView, DataList and Repeater Control in

In Previous articles, i have written article about DataGrid.

DataGrid, GridView and DataList controls are derived from the WebControl class, while the Repeater control is derived from the Control class. The WebControl class contains a number of properties, such as BackColor, ForeColor, CssClass, BorderStyle and so on.
In ASP .NET basically there are four kinds of the Data Presentation Controls.

  • GridView (more options)
  • DataGrid
  • DataList
  • Repeater (less options)

List of different abilities of Repeater Control, Datalist Control and GridView Control features.

How to read value from Configuration file – ( app.config or web.config )

One of the best practice used in .NET application is to store the constants like Database connection in app.config in case of dll or standalone application or web.config in case of websites.

To achieve this, we have to follow below steps:

add reference of System.Configuration in .NET
add reference of System.Configuration in .NET

Lets consider below code in web.config