#眉標= ASP.NET 2.0 #副標=Ajax網頁開發(3) #大標=使用Microsoft Atlas開發Ajax風格的網頁(上) #作者=文/王寧疆 =============程式============= 程式1 <%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>
=============程式============= =============程式============= 程式2 Type.registerNamespace("Demo"); //註冊名稱為Demo的名稱空間 Demo.Person = function(firstName, lastName, alias) //建立名稱為Person的類別,以及類別的建構函式, //並放在Demo名稱空間底下 { var _firstName = firstName; //將傳給建構函式的firstName參數的內容值 //指挀給類別宣告的變數 var _lastName = lastName; //將傳給建構函式的lastName參數的內容值 //指挀給類別宣告的變數 this.getFirstName = function() { //在類別中製作名稱為getFirstName的方法 return _firstName; //傳回名稱為_firstName的變數的內容值 } } Type.registerClass('Demo.Person', null, Web.IDisposable); //註冊製作好的Person類別, //並指定要放在Demo名稱空間底下 =============程式============= =============程式============= =============程式============= =============程式============= 程式3
使用Demo名稱空間中的Person類別
=============程式============= =============程式============= 程式4 =============程式============= =============程式============= 程式5 Demo.Employee = function(firstName, lastName, emailAddress, team, title) { //建立名稱為Employee的類別 Demo.Employee.initializeBase (this, [firstName, lastName, emailAddress]); //呼叫基礎類別的建構函式 var _team = team; //將team參數的內容值指派給類的變數 var _title = title; //將title參數的內容值指派給類的變數 this.getTeam = function() { //製作gteTeam方法 return _team; //傳回_team變數的內容值 } } Type.registerClass('Demo.Employee', Demo.Person); //註冊Employee類別並指定Person類別為父類別 =============程式============= =============程式============= 程式6 Type.registerNamespace("Demo"); Demo.IVehicle = function() { //宣告名稱為IVehicle的介面 this.Drive = Function.abstractMethod; //宣告名稱為Drive方法 } Type.registerInterface('Demo.IVehicle'); //在Demo名稱空間中註冊IVehicle介面 Demo.Car = function() { //建立名稱為Car的類別 this.Drive = function() { //實作介面宣告的Drive方法 return "drive car"; //傳回字串 } } Type.registerClass('Demo.Car', Demo.IVehicle); //註冊Car類別,並指定要實作IVehicle介面 =============程式============= =============程式=============
=============程式============= =============程式============= 程式7 =============程式============= =============程式============= g_panel = new Web.UI.Control($('panel')); =============程式============= =============程式============= g_panel = new Web.UI.Control (document.getElementById('panel');); =============程式============= ==========程式=============
=============程式============= =============程式============= 程式8 =============程式============= =============程式============= 程式9 =============程式============= =============程式============= 程式10 =============程式============= =============程式=============
=============程式============= =============程式============= 程式11 =============程式============= =============程式============= 程式12 =============程式============= =============程式============= =============程式============= =============程式============= 程式13 var textBoxNumber = new Web.UI.TextBox($( 'textBoxNumber')); //將網頁上id屬性內容值為'textBoxNumber' //的標籤建立成Atlas的TextBox控制項 var spanLabel = new Web.UI.Label( $('spanLabel')); //將網頁上id屬性內容值為'spanLabel //'的標籤建立成Atlas的Label控制項 textBoxNumber.set_text("0"); //將textBoxNumber控制項的內容值設定為0 var binding_3 = new Web.Binding(); //建立Binding類別的物件 binding_3.set_dataContext(textBoxNumber); //設定繫結的控制項對象為textBoxNumber binding_3.set_dataPath('text'); //設定繫結的屬性為textBoxNumber控制項的text屬性 binding_3.set_property('text'); //當所繫結的控制項的text內容值改變的時候要將 //所繫結的控制項的text屬性的內容 //指派給自己的text屬性當做內容值 binding_3.set_transformerArgument(5); //設定資料繫結的參數的內容值為5 binding_3.transform.add(Web.Binding.Transformers.Add); //進行資料繫結時要將來源資料加上參 //數的內容值再設定給目標控制項指定的屬性 spanLabel.get_bindings().add(binding_3); //將製作好的Binding類別的物件 //加到spanLabel控制項的Bindings集合, //完成資料繫結的設定 =============程式============= =============程式============= =============程式============= =============程式============= 程式14 =============程式============= =============程式============= 程式15 =============程式=============