Click here to Skip to main content
Click here to Skip to main content

Clean ASP.NET page initialization

, 11 Jul 2011
Rate this:
Please Sign up or sign in to vote.
Initialize Master Page, Page, and Controls in a single JavaScript call.

Here is a clean way to initialize all the JavaScript in your ASP.NET page. It is accomplished using a custom initializer class. This example uses jQuery.

In the master page itself or in a .js class referenced in your master page, declare your class:

//Initializer class
function Initializer() {
    //A simple array of functions
    this.functionArray = new Array();
}
 
//The method to insert functions to the initialization stack
Initializer.prototype.addStep = function (func) {
    this.functionArray.push(func);
}
 
//The initializing method
Initializer.prototype.init = function () {
    for (x in this.functionArray) {
        this.functionArray[x]();
    }
}

The init() method loops through the function array and executes each method.

Add this block to the master page:

<script type='text/javascript'>
    //Create instance of the initializer
    var initializer = new Initializer();
 
    //JQuery's 'onready' function
    $(document).ready(function () {
        initializer.init();
    });
</script>

In your user controls and/or pages, add your initialization code:

//Method called by Page_Load
private void CreateInitScript()
{
    string script = "function doSomething() {
       //Perform some actions
    }";
 
    ClientScriptManager cs = Page.ClientScript;
 
    //Insert your script into the page
    cs.RegisterClientScriptBlock(this.GetType(), "MyScript", script, true);
 

    //Add a call to your method to the validation stack
    string validationScript = "if(initializer){ initializer.addStep(doSomething); }";
 
    cs.RegisterStartupScript(this.GetType(), "initscript", validationScript, true);
}

This code is very handy when you want to handle your control's initialization at the same time as the hosting page and the master page if you use one.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Share

About the Author

Gordon Kushner
Software Developer (Senior)
United States United States
No Biography provided

Comments and Discussions

 
-- There are no messages in this forum --
| Advertise | Privacy | Mobile
Web04 | 2.8.140814.1 | Last Updated 11 Jul 2011
Article Copyright 2011 by Gordon Kushner
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid