|
|
by
Jaish Mathews
on
Oct 24, 2009
Asp.net ajx supporting custom Classes and NameSpaces. We can declare a class and use it object in another place. We can also store the values to this object and later can use for other purposes. I am here decalring a custom class inside a custom ajax library. Then using that class in another javascrit. You peole need to try to elaborate this class with more functionalities. I am trying to give you a good start.
|
|
|
|
|
|
|
|
|
I have an AJAX custom library. A AJAX custom library is a normal javascript contains general AJAX custom classes and NameSpaces which other javascripts can use. Simly the purpose of library here is same like server side. Reusability. My AJAX custom library name is "SampleAjaxLibrary.js", like below.
/// <reference name="MicrosoftAjax.js"/> function CreateEmloyees() {
//Registering a new custom namespace Type.registerNamespace("SampleAjaxLibrary");
//Defining a type named "Emloyees" under "SampleAjaxLibrary" NameSace. Look at that the type //constructor also as it's defined with a single argument "id". //You can see on calling the constructor one local variable _id will be set. SampleAjaxLibrary.Emloyees = function(id) { this._id = id; }
//Below defining the body of the above type using a key word "prototype". //Any thing like this defined for a type means, those are exosed to the outside world. SampleAjaxLibrary.Emloyees.prototype = { //A function defining to get the "ID" value getID: function() { return this._id; }, ////A function defining to get the "Name" value getName: function() { return this._name; }, //A function defining to set the "Name" value setName: function(val) { this._name = val; }, //A function defining to get the "Age" value getAge: function() { return this._age; }, //A function defining to set the "Age" value setAge: function(val) { this._age = val; } };
//Registering the above referred type,"Emloyees", as a "Class" type under "SampleAjaxLibrary" //NameSpace SampleAjaxLibrary.Emloyees.registerClass("SampleAjaxLibrary.Emloyees", Sys.UI.Behavior); //This script library saying that "I am loaded"!!!. Sys.Application.notifyScriptLoaded(); }
In every line I put comments in detail. But one general information I need to share with you guys. i.e. 1st line, "/// <reference name="MicrosoftAjax.js"/>". This one giving a Ref. to builtin "MicrosoftAjax.js". Once you added that line, you will intellisense in VS2008. But if you need intellesense for another JS file which is physically residing in your project, you can use like "/// <reference path="MicrosoftAjax.js"/>". The bolded lines only differs for builtin and custom. So for getting intellisense we added that 1st line.
Now I have a custom JS name "MyScrit.js" like below. This JS using above mentioned AJAX library.
function CallSampleAjaxLibrary() { //Creating an object of my newly created AJAX class by passing the constructor argument //which will set to the ID of the employee. Please look at the class definition inside //SampleAjaxLibrary.js var obj = new SampleAjaxLibrary.Emloyees("1");
//Setting the "Name" and "Age" for the "Employee" object using it's //Custom methods. obj.setName("Jaish"); obj.setAge("36"); //After set all values, now getting the setted values for "Employee" class and displaying. var info = "ID: " + obj.getID() + "\n" + "Name: " + obj.getName() + "\n" + "Age: " + obj.getAge(); alert(info); }
Below is my aspx. I am creating AJAX library inside "pageLoad()" to make sure that all basix AJAX libraries are got loaded for smooth creation of ourlibrary. Other wise you will get errors like "Type" could not identified etc..
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server">
<script src="MyScrit.js" type="text/javascript" language="javascript"></script>
<script src="SampleAjaxLibrary.js" type="text/javascript" language="javascript"></script>
<script language="javascript" type="text/javascript"> function pageLoad() { //Calling the typelibrary file for creating the "Emloyees" class //I am creating "Emloyees" class in side a "pageLoad()". So safe from errors like, //"Type" is undefined, that's happening once your script loaded 1st and executing //before the basic AJAX script loaded. Here we can ensure all basic scripts are loaded. CreateEmloyees() //Using the custom AJAX library after it's creation CallSampleAjaxLibrary(); }
</script>
<title></title> </head> <body> <form id="form1" runat="server"> <asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager> </form> </body> </html>
|
|