Ƶ µÀ Ö± ´ï - ÐÂÎÅ - Åàѵ - Èí¼þ - ½Ì³Ì - Ç°ÑØ - ×éÍø - ϵͳӦÓà - °²È« - ±à³Ì - ´æ´¢ - ²Ù×÷ϵͳ - Êý¾Ý¿â - ·þÎñÆ÷ - רÌâ - ²úÆ· - °¸Àý¿â - ¶ÁÊé - ²©¿Í - BBS
51CTO.COM_Öйú×î´óµÄÍøÂç¼¼ÊõÍøÕ¾
ÕÒ×ÊÁÏ£º

10.2 ÈçºÎʹÓÃÃüÃû¿Õ¼äÓëÀà

×÷Õß: ÕÂÁ¢ÃñÑо¿ÊÒ ³ö´¦:»úе¹¤Òµ³ö°æÉç ¡¡2008-05-06 13:16¡¡   ×©    ºÃ    ÆÀÂÛ  Ìõ ¡¡½øÈëÂÛ̳
ÔĶÁÌáʾ£º¡¶ASP.NET AJAX ¾­µä·¶Àý168£¨VC#°æ£©¡·µÚ10ÕÂΪÄúչʾµÄÊÇJavaScript»»ÐÂ×°£¬×¢ÈëOOPÐÂÁé»ê£¬±¾½ÚÖ÷Òª½éÉܵÄÊÇ ÈçºÎʹÓÃÃüÃû¿Õ¼äÓëÀà¡£

10.2   ÈçºÎʹÓÃÃüÃû¿Õ¼äÓëÀà

ÃüÃû¿Õ¼ä£¨Namespace£©ÊÇÏà¹ØÀà»òÀàÐ͵ÄÂß¼­·Ö×飬ÓÃÀ´¼õÉÙ¶¨Òå¶ÔÏóʱ¿ÉÄܲúÉúµÄÓïÒâÄ£ºýÎÊÌâ¡£ÎÒÃÇͨ³£»á½«Í¬Ò»À๦ÄܵÄÀà»òÀàÐͰÚÔÚͬһ¸öÃüÃû¿Õ¼äÖУ¬ÒÔ±ãÈóÌÐò´úÂëÏԵøüÓÐ×éÖ¯¡£ÔÚJavaScriptµÄÃüÃû¿Õ¼äÖУ¬Äú¿ÉÒÔÉùÃ÷Ò»¸ö»ò¶à¸öÏÂÁÐÏîÄ¿£º 


¡¤ÁíÍâÒ»¸öÃüÃû¿Õ¼ä¡£       ¡¤Ò»¸öö¾Ù¡£ 
¡¤Ò»¸öÀà¡£                      ¡¤Ò»¸öίÍС£ 
¡¤Ò»¸ö½Ó¿Ú¡£

³ýÁË¿ÉÒÔ×ÔÓɶ¨ÒåÃüÃû¿Õ¼äÖ®Í⣬¶ÔÓÚÐí¶à²»Öª´ÓºÎÏÂÊֵijõѧÕß¶øÑÔ£¬Microsoft AJAX LibraryÒѾ­ÄÚÖöà¸öJavaScriptÃüÃû¿Õ¼ä£¬ÕâЩÃüÃû¿Õ¼äÌṩΪÊýÖÚ¶àµÄ¿Í»§¶ËÀ࣬ÈóÌÐòÉè¼ÆÔ±ÒÔÀàΪ³ö·¢µãÀ´¿ª·¢JavaScript³ÌÐò£¬±í10-2ÁгöÁËMicrosoft AJAX LibraryËùÌṩµÄJavaScriptÃüÃû¿Õ¼ä¡£

 

³ýÁËÃüÃû¿Õ¼äÖ®Í⣬ASP.NET AJAX×îÖØÒªµÄ¾ÍÊǵ¼ÈëÁËÀàµÄ¸ÅÄî¡£³ÌÐòÉè¼ÆÔ±Äܹ»ÒÔOOP¿ª·¢Ä£Ê½£¬´´½¨ÅÉÉú×ÔASP.NET AJAX¿Í»§¶Ëº¯Êý¿â»ùÀà»òÊÇÆäËû×Ô¶¨ÒåÀàµÄJavaScript¶ÔÏóÓë×é¼þ¡£JavaScriptÀàÊôÓÚÒýÓÃÀàÐÍ£¬Óë .NET Framework ÀຯÊý¿âÒ»Ñù£¬ËùÓеÄÀà¶¼ÊÇÅÉÉú×ÔobjectÀࣨ²»¹ý´ËobjectÀàÓë .NET Framework µÄObjectÀ಻ͬ£©¡£Í¨¹ýÔÚÿһ¸öÀàÃû³ÆÖ®Ç°¼ÓÉÏËùÊôÃüÃû¿Õ¼äµÄÃû³ÆÓëÒ»¸öÓ¢Îľäµã£¨.£©£¬¿ÉÒÔÈ·±£ÀàÃû³ÆÊÇÈ«¾ÖΨһµÄ£¨ÀýÈ磺MyNamespace.MyClass£©¡£

 

JavaScriptÀà¿ÉÒÔÓµÓÐËÄÖÖ³ÉÔ±£º¡°×ֶΡ±£¨Fields£©¡¢¡°ÊôÐÔ¡±£¨Properties£©¡¢¡°·½·¨¡±£¨Methods£©Ó롰ʼþ¡±£¨Events£©¡£×Ö¶ÎÓëÊôÐÔÊÇÃû³ÆÓëÊýÖµµÄÅä¶Ô×éºÏ£¬ÓÃÀ´ÃèÊöʵÀýµÄÌØÐÔ¡£×Ö¶ÎÓÉ»ù±¾ÀàÐÍ£¨Primitive Type£©×é³É£¬¿ÉÒÔͨ¹ýʵÀýÀ´·ÃÎÊ£¬ÀýÈ磺

 

myClassInstance.name="Fred";


ÒÔÉÏÃæµÄ³ÌÐò´úÂë¶øÑÔ£¬±íʾmyClassInstanceʵÀýÓµÓÐÒ»¸öÃû³ÆÎªnameµÄ×ֶΣ¬Í¬Ê±½«name×ֶεÄÖµÉ趨ΪFred¡£

ÊôÐÔÓë×ֶβ»Í¬£¬ÊôÐÔµÄÖµ¿ÉÒÔÊÇÈκλù±¾ÀàÐÍ£¨Primitive Type£©»òÒýÓÃÀàÐÍ£¨Reference type£©£¬ÓÉgetÓëset·ÃÎÊ·ûÀ´·ÃÎÊÆäÄÚÈÝ¡£ÔÚASP.NET AJAXÖУ¬JavaScriptÒÔ·½·¨µÄÐÎʽ´ú±ígetÓëset·ÃÎÊ·û£¬Í¨³£»áʹÓà get_ »òÊÇ set_ À´µ±×÷·½·¨Ãû³ÆµÄǰ׺´Ê¡£ÀýÈ磬Èç¹ûÒª·ÃÎÊmyClassInstanceʵÀýµÄcancelÊôÐÔ£¬ÈçÏÂËùʾ£¬Çëµ÷ÓÃset_cancel»òÊÇget_cancel·½·¨£º

 myClassInstance.set_cancel(true);
cancelValue = myClassInstance.get_cancel();

 

ËùνµÄ·½·¨¾ÍÊÇ»áÖ´ÐÐÌØ¶¨²Ù×÷£¬²»Ö»Êǵ¥´¿·µ»ØÒ»¸öÊôÐÔÖµµÄº¯Êý£¬¶øÊ¼þÔòÊÇ֪ͨӦÓóÌÐòÓÐÌØ¶¨¶¯×÷·¢ÉúµÄÐźš£ÀýÈ磬µ±Óû§µ¥»÷´°ÌåÉϵĿؼþʱ£¬¿Ø¼þ¾Í»áÒý·¢Clickʼþ²¢µ÷ÓÃÓÃÀ´´¦ÀíʼþµÄº¯Êý¡£Ê¼þ¾ÍÏñÊÇÉùÃ÷·¢ÉúÌØ¶¨¶¯×÷µÄÐÅÏ¢£¬²¥ËÍÐÅÏ¢µÄ¶¯×÷³ÆÎª¡°Òý·¢¡±Ê¼þ¡£ÈκÎÄܹ»Òý·¢Ê¼þµÄ¶ÔÏó¾ÍÊÇ¡°Ê¼þ´«ËÍÕß¡±£¬Ò²³ÆÎª¡°Ê¼þÔ´¡±£¨Event source£©£¬´°Ìå¡¢¿Ø¼þºÍÓû§¶¨Òå¶ÔÏ󶼿ÉÒÔÊÇʼþ´«ËÍÕß¡£¡°Ê¼þ´¦Àíº¯Êý¡±ÊÇÔÚ·¢Éú¶ÔӦʼþʱËùµ÷Óõĺ¯Êý¡£ÔÚÄܹ»Ê¹ÓÃʼþ´¦Àíº¯Êý֮ǰ£¬Äú±ØÐëÏÈʹÓÃSys.EventHandlerList.addHandlerÓï¾ä£¬´´½¨¸Ãʼþ´¦Àíº¯ÊýÓëʼþÖ®¼äµÄ¹ØÁª¡£µ±Ê¼þ±»Òý·¢Ê±£¬Ëü»á×Ô¶¯µ÷ÓÃÒ»¸ö»ò¶à¸öʼþ´¦Àíº¯ÊýÀ´Ö´ÐÐÌØ¶¨µÄ²Ù×÷£¬Ö®ºóµÄ·¶Àý»áÓÐÍêÕûµÄ˵Ã÷£¬Çë´ó¼ÒÉÔ°²ÎðÔê¡£

 

¼ÈÈ»ASP.NET AJAX¸³ÓèJavaScriptÍêÕûµÄÃæÏò¶ÔÏó¹¦ÄÜ£¬¾Í²»Äܲ»Ìáµ½ÃæÏò¶ÔÏó³ÌÐòÉè¼Æ³£Óõġ°·ÃÎÊÐÞÊηû¡±£¨Access Modifiers£©¸ÅÄî¡£ËùνµÄ·ÃÎÊÐÞÊηû£¬Ö¸µÄ¾ÍÊÇÓÃÀ´¾ö¶¨Àà»ò³ÉÔ±ÔÚºÎÖÖÇé¿öÏÂÄܹ»±»·ÃÎʵĹؼü´Ê¡£ÓÉÓÚ³ÌÐòÍⲿ¡¢ÃüÃû¿Õ¼äµÄÄÚ²¿Àà¡¢»òÊÇÌØ¶¨µÄ³ÌÐò´úÂëÇø¿é¶¼Óи÷×Ô²»Í¬µÄ·ÃÎÊÌõ¼þ£¬ËùÒÔVisual BasicÓë C# ¶¼ÓжÀÁ¢µÄ¹Ø¼ü´ÊÀ´×÷Ϊ·ÃÎÊÐÞÊηû£¬µ«ÊÇASP.NET AJAX²¢Ã»ÓзÃÎÊÐÞÊηûµÄÉè¼Æ¡£È»¶ø£¬ASP.NET AJAXÔÊÐíÒ»¸öϰ¹ßÐÔµÄÓ÷¨£¬ÄǾÍÊÇÈç¹ûÀà³ÉÔ±µÄÃû³ÆÒÔÏ»®Ïߣ¨_£©¿ªÍ·£¬Ôò¸Ã³ÉÔ±»á±»ÈÏΪÊÇ˽ÓУ¨Private£©µÄ£¬²»ÔÊÐí´Ó³ÉÔ±ËùÊôÀàµÄÍⲿÀ´·ÃÎÊËü¡£

 

Á˽âÁËÃüÃû¿Õ¼äÓëÀàÖ®ºó£¬½ÓÏÂÀ´ÎÒÃÇÒª¼ÌÐøËµÃ÷ÈçºÎʵÏÖÃüÃû¿Õ¼äÓëÀ࣬²¢Í¨¹ýʵÏÖÑÝÁ·Èø÷λÁ˽âÈçºÎÖÆ×÷ÍêÕûµÄJavaScriptÀà¡£

 

Ò»°ãÀ´Ëµ£¬ASP.NET AJAX¿Í»§¶ËÀàËùÓµÓеĻù±¾×é¼þ£¨Base components£©¡¢À©Õ¹ÀàµÄÐÐΪ£¨Behaviors£©Óë¿Ø¼þÀ࣬¶¼Ê¹ÓÃJavaScriptµÄPrototype modelÓëJSON notationÓï·¨À´¶¨Òå¡£Ò»°ãÀ´Ëµ£¬Óû´´½¨Ò»¸öJavaScriptÀ࣬±ØÐëÒÀÐòÖ´ÐÐÏÂÁÐËĸö²½Öè¡£

 

1. ´´½¨ÃüÃû¿Õ¼ä

 

ÓÉGlobalÃüÃû¿Õ¼äµÄTypeÀàÀ´¼ÓÒÔ×¢²áµÄ¶ÔÏó»áÓµÓÐÃæÏò¶ÔÏó¹¦ÄÜ£¬ËùÒÔÊ×Òª²½Öè¾ÍÊǵ÷ÓÃTypeÀàµÄregisterNamespace·½·¨À´´´½¨ÀàËùÊôµÄÃüÃû¿Õ¼ä£¬ÒÔ±ãÈÃÃüÃû¿Õ¼äÖеijÉÔ±¶¼ÄÜÓµÓÐÃæÏò¶ÔÏóÌØÐÔ¡£

 

registerNamespace·½·¨µÄÓï·¨ÈçÏÂËùʾ£º 

 Type.registerNamespace(namespacePath);
Óï·¨ÖеIJÎÊýnamespacePathÊÇÒ»¸öÎı¾×Ö·û´®£¬´ú±íËùҪע²áµÄÃüÃû¿Õ¼äµÄÃû³Æ£¬´ËÃû³Æ¿ÉÒÔʹÓôóд£¨Aµ½Z£©¡¢Ð¡Ð´£¨aµ½z£©µÄÓ¢ÎÄ×Öĸ¡¢»òÕßÊÇ0µ½9µÄÕûÊýÀ´ÃüÃû¡£ÀýÈ磬Èç¹ûÒª´´½¨Ò»¸öÃû³ÆÎªSamplesµÄÃüÃû¿Õ¼ä£¬Çë±àдÈçÏÂËùʾµÄ³ÌÐò´úÂ룺
Type.registerNamespace("Samples"); 

2. ÔÚÃüÃû¿Õ¼äÖд´½¨Àಢָ¶¨Æä¹¹Ô캯Êý

Èçͬ .NET Framework µÄÀàÒ»Ñù£¬JavaScriptÀàÒ»ÑùÐèÒª¹¹Ô캯Êý¡£´´½¨¹¹Ô캯ÊýµÄÓï·¨·Ç³£¼òµ¥£¬ÀýÈ磬Èç¹ûÒªÔÚSamplesÃüÃû¿Õ¼äÖд´½¨SimpleComponentÀàµÄ¹¹Ô캯Êý£¬Çë±àдÈçÏÂËùʾµÄ³ÌÐò´úÂ룺

/*¹«Óй¹Ô캯Êý¡£*/ 
Samples.SimpleComponent = function(V1, V2)
{
}

ÌØ±ðҪ˵Ã÷µÄÊÇ£¬V1ÓëV2´ú±í¹¹Ô캯ÊýµÄ²ÎÊý£¬±íʾ´´½¨Samples.SimpleComponentÀàµÄʵÀýʱ£¬ÐèÒª´«µÝÁ½¸ö²ÎÊý¸ø¹¹Ô캯Êý£¬´Ë¸ÅÄîÓë .NET Framework ÍêÈ«Ïàͬ¡£

3. ¶¨ÒåÀà

½ÓÏÂÀ´£¬ÇëÓÚJavaScriptµÄPrototype³ÌÐò´úÂëÇø¿éÖж¨ÒåÀàÑÓÉìÀ©Õ¹µÄÄÚÈÝ¡£ÇëÓÚPrototype³ÌÐò´úÂëÇø¿éÖÐÄÚº¬ËùÓÐPublicÓëPrivate·½·¨µÄ¶¨Ò壬°üÀ¨ÊôÐÔ·ÃÎÊ·û·½·¨ÓëʼþÔÚÄÚ¡£

ÔÚPrototype³ÌÐò´úÂëÇø¿éÖж¨Òå×ֶλá±ÈÔÚ¹¹Ô캯ÊýÖж¨Òå×ֶλñµÃ½Ï¼ÑµÄЧÂÊ£¬È»¶ø£¬²¢²»ÊÇËùÓеÄÀàÐͶ¼ÊʺÏÔÚPrototype³ÌÐò´úÂëÇø¿éÖж¨Òå¡£ÀýÈ磬ArrayÓëObjectÀàÐ;ͱØÐ붨ÒåÔÚ¹¹Ô캯ÊýÖУ¬Èç´ËÒ»À´£¬¶Ôÿһ¸öʵÀýÀ´ËµËüÃDzÅÊÇΨһµÄ£¬¶ø²»ÊDZ»ËùÓеÄʵÀý´æÈ¡¡£´Ë¾Ù¿É±ÜÃâÄúÔ¤ÆÚÖ»¸üÐÂijһ¸öʵÀýµÄ×é¼þÊôÐÔ£¬µ«ÊÇÈ´¸üÐÂÁËËùÓÐʵÀýµÄÊôÐÔÖµ¡£

×¢Ò⣺ÇëʹÓÃthisÖ¸ÕëÀ´ÒýÓÃPrototype³ÌÐò´úÂëÇø¿éÖеijÉÔ±£¬thisÖ¸ÕëÓµÓÐÐÔÄÜÓÅÊÆ£¬ÒòΪ¹¤×÷¼¯ºÏ»áʹÓýÏÉÙµÄÄÚ´æ¡£

ÒÔJSON notation¹æ·¶À´Ëµ£¬ËùÓеÄPrototype³ÌÐò´úÂëÇø¿é³ÉÔ±¶¼ÊÇÒÔ¶ººÅ£¨,£©·Ö¸ô£¬×îºóÒ»¸öPrototype³ÌÐò´úÂëÇø¿é³ÉÔ±Ö®ºó²»ÐèÒªÔÙ¼ÓÉ϶ººÅ¡£ÒÔÏÂÃæµÄ³ÌÐò´úÂë¶øÑÔ£¬±íʾΪSamples.SimpleComponentÀඨÒåApropÊôÐÔÓëDoSomething·½·¨£º

Samples.SimpleComponent.prototype = 
{ 
 // ¶¨Òå·ÃÎÊ·û¡£ 
 set_Aprop: function(aNumber) 
 { 
  this._aProp = aNumber; 
 }, 
 get_Aprop: function() 
 { 
 return this._aProp; 
 }, 
 // ¶¨Òå·½·¨¡£ 
 DoSomething: function() 
 { 
  alert('ÒѾ­µ÷ÓÃDoSomething·½·¨£¡'); 
} 
} // Prototype¶¨Òå½áÊø¡£

ÇëÌØ±ð×¢ÒâÊôÐÔÖ®¼äÒÔ¼°ÊôÐÔÓë·½·¨Ö®¼ä½ÔʹÓöººÅ×÷·Ö¸ô£¬Í¬Ê±PrototypeÇø¿éµÄ×îºóÒ»¸ö³ÉÔ±£¨Ò²¾ÍÊÇDoSomething·½·¨£©Ö®ºó²¢Î´Ìí¼Ó¶ººÅ£¬ÕâÍêÈ«·ûºÏJSON notationµÄÇëÇó¡£

4. ×¢²áÀಢָ¶¨ËùÒª¼Ì³ÐµÄÀàÓëËùҪʵÏֵĽӿÚ

µ½Ä¿Ç°ÎªÖ¹£¬ÀàÓëÃüÃû¿Õ¼ä»¹ÊÇÁ½¸ö¶ÀÁ¢µÄ¸öÌ壬±ØÐëͨ¹ýGlobalÃüÃû¿Õ¼äµÄTypeÀàµÄregisterClass·½·¨½«ÀàÌí¼Óµ½ÃüÃû¿Õ¼äÖУ¬²ÅÄÜÈÃÀàÓëÃüÃû¿Õ¼ä²úÉú´ÓÊô¹ØÏµ¡£ÇëÖ±½Óµ÷ÓÃÀàµÄregisterClass·½·¨À´×¢²áÀ࣬Óï·¨ÈçÏÂËùʾ£º

classInstanceVar.registerClass(typeName, baseType, interfaceTypes); 

Óï·¨ÖеÄclassInstanceVar²ÎÊý´ú±íÀ࣬typeName²ÎÊý´ú±íÀàµÄÍêÕûÃû³Æ£¬baseType²ÎÊý´ú±íËùÒª¼Ì³ÐµÄÀ࣬interfaceTypes²ÎÊý´ú±íËùҪʵÏֵĽӿڡ£

ÀýÈ磬Èç¹ûÄúҪע²áSamplesÃüÃû¿Õ¼äµÄSimpleComponentÀ࣬¶øÇÒ¸ÃÀà¼È²»¼Ì³ÐÈκÎÀ࣬Ҳ²»ÊµÏÖÈκνӿڣ¬ÇëÖ´ÐÐÒÔϵÄÓï¾ä£º

 Samples.SimpleComponent.registerClass('Samples.SimpleComponent', null, null); 

×¢Ò⣺ËùҪʵÏֵĽӿڱØÐëÏÈʹÓÃType.registerInterface·½·¨À´×¢²á¡£

¾ÙÀýÀ´Ëµ£¬Ò»¸öÍêÕûµÄAJAX JavaScriptÀඨÒåÓ¦ÈçÏÂËùʾ£º

 // ´´½¨ÃüÃû¿Õ¼ä¡£ 
Type.registerNamespace("Samples");

// ÓÚÃüÃû¿Õ¼äÖд´½¨À࣬²¢Ö¸¶¨Æä¹¹Ô캯Êý¡£

Samples.SimpleComponent = function(V1, V2)

{

...

}

// ¶¨ÒåÀà¡£

Samples.SimpleComponent.prototype =


{

// ¶¨Òå·ÃÎÊ·û¡£

set_Aprop: function(aNumber)


{

this._aProp = aNumber;

},

get_Aprop: function()

{

return this._aProp;

},

// ¶¨Òå·½·¨¡£

DoSomething: function()

{

alert('ÒѾ­µ÷ÓÃDoSomething·½·¨£¡');

}

}// Prototype¶¨Òå½áÊø¡£

// ×¢²áÀಢָ¶¨ËùÒª¼Ì³ÐµÄÀàÓëËùҪʵÏֵĽӿڡ£

Samples.SimpleComponent.registerClass('Samples.SimpleComponent', null, null);

ʵÏÖÑÝÁ·

ÔÚÒÔϵIJ½ÖèÖУ¬ÎÒÃǽ«´´½¨Ò»¸öJavaScriptÀàÀ´´ú±íÒ»¸ö°ôÇò¶Ó£¬²¢Îª´ËÀඨÒåÊôÐÔ¼°·½·¨¡£×îºó£¬Äú½«Êµ¼Ê´´½¨ASP.NET AJAXÒ³ÃæÀ´Ê¾·¶ÈçºÎʹÓÃJavaScriptÀà¶ÔÏó£º

1£©½«ÄúµÄASP.NET AJAXÍøÕ¾´ò¿ªÔÚVisual Studio 2005µÄ¼¯³É¿ª·¢»·¾³ÖС£

2£©´Ó¡°ÍøÕ¾¡±²Ëµ¥ÖÐÑ¡Ôñ¡°Ìí¼ÓÐÂÏÃüÁî¡£

3£©Ñ¡Ôñ¡°JscriptÎļþ¡±ÏîÄ¿£¬½Ó×ÅÔÚ¡°Ãû³Æ¡±Îı¾¿òÖÐÊäÈëJavaScriptµÄÎļþÃû³Æ¡£ÒÔ±¾Àý¶øÑÔ£¬ÇëÊäÈëAdultGroup.js£¬È»ºóµ¥»÷¡°Ìí¼Ó¡±°´Å¥¡£

4£©´´½¨JavaScriptÀàµÄµÚÒ»¸ö²½Öè¾ÍÊÇ´´½¨ÃüÃû¿Õ¼ä£¬ÒÔ±¾·¶Àý¶øÑÔ£¬Çë´´½¨AdultGroupÃüÃû¿Õ¼ä£¬ÈçÏÂËùʾ£º

Type.registerNamespace("AdultGroup"); 
5£©Çë¼ÌÐø±àдÏÂÁгÌÐò´úÂ룬ÒÔ±ãÔÚAdultGroupÃüÃû¿Õ¼äÖд´½¨Ò»¸öBaseballTeamÀ࣬²¢ÇÒÒ»²¢Ö¸¶¨Æä¹«Óй¹Ô캯Êý¡£À๹Ô캯ÊýµÄÃû³ÆÊÇÀàËùÊôµÄÃüÃû¿Õ¼ä¼ÓÉÏÀàÃû£º
/*¹«Óй¹Ô캯Êý¡£*/ 
AdultGroup.BaseballTeam = function(Nm, St) 
{
} 
6£©ÔÚÀ๹Ô캯ÊýÖÐΪBaseballTeamÀàÌí¼ÓÁ½¸ö˽ÓÐ×ֶΣ¬ÒÔ±ãÓÃÀ´³ÖÓд«µÝ¸ø¹¹Ô캯ÊýµÄ²ÎÊýÖµ¡£½¨Òé°Ñ¹¹Ô캯ÊýÖеÄ˽ÓбäÁ¿µ±³ÉÀà×ֶΣ¬Ê¹ÓÃthisÖ¸ÕëÀ´ÉùÃ÷£¬ÒÔϰ¹ßÐÔµÄÓ÷¨À´Ëµ£¬Ë½ÓбäÁ¿µÄÃüÃû½«ÒÔÏ»®Ïß×÷¿ªÍ·£º
this._Name = Nm; 
this._Stadium = St; 
ÍêÕûµÄ¹¹Ô캯ÊýÄÚÈÝÁÐʾÈçÏ£º
// À๫Óй¹Ô캯Êý¡£ 
AdultGroup.BaseballTeam = function(Nm, St)
{
this._Name = Nm;
this._Stadium = St;
}
7£©ÏÖÔÚ£¬Çë±àдÀàµÄPrototype³ÌÐò´úÂëÇø¿é£¬ÒÔ±ãΪBaseballTeamÀàÌí¼ÓÁ½¸ö¾ß±¸³õʼֵµÄÈ«¾Ö±äÁ¿£º
 AdultGroup.BaseballTeam.prototype = 
{
// ÉùÃ÷±äÁ¿¡£ 
Wins : 0, 
Defeats : 0
}
8£©Çë¼ÌÐøÔÚPrototype³ÌÐò´úÂëÇø¿éÖбàдÏÂÁгÌÐò´úÂ룬ÒÔ±ãΪBaseballTeamÀàÌí¼ÓNameÓëStadiumÊôÐÔ£º
 // ÉùÃ÷ÊôÐÔ¡£ 
get_Name : function()
{

return this._Name;

},

get_Stadium : function()

{
return this._Stadium;

},

9£©Çë¼ÌÐøÔÚPrototype³ÌÐò´úÂëÇø¿éÖбàдÏÂÁгÌÐò´úÂ룬ÒÔ±ãΪBaseballTeamÀඨÒåÒ»¸öÃû³ÆÎªRecordµÄÊôÐÔ£¬ÇëÌØ±ð×¢ÒâÎÒÃÇÊÇÈçºÎÀûÓÃthisÖ¸Õë·ÃÎÊÈ«¾Ö±äÁ¿µÄ£º
get_Record : function() 
{ 
 var played = this.Wins + this.Defeats; 
return (this.Wins/played);
},

RecordÊôÐԻ᷵»Ø°ôÇò¶ÓµÄʤÂÊ¡£ÀýÈ磬Èç¹ûÍõ½¨ÃñµÄÑó»ù¶Ó¹ýÈ¥Ó®ÁËÊ®³¡±ÈÈüÒ²ÊäÁËÊ®³¡±ÈÈü£¬ÔòÆäʤÂÊ£¨Ò༴RecordÊôÐÔµÄÖµ£©½«ÊÇ0.5¡£

10£©Çë¼ÌÐøÔÚPrototype³ÌÐò´úÂëÇø¿éÖбàдÏÂÁгÌÐò´úÂ룬ÒÔ±ãΪBaseballTeamÀàÌí¼ÓÒ»¸ö¹«Óз½·¨PlayGame£º¡°

PlayGame : function(RunsFor, RunsAgainst) 
{
 if(RunsFor > RunsAgainst) 
{
this.Wins += 1;
}
 else 
{
this.Defeats += 1;
}
},
11£©Çë¼ÌÐøÔÚPrototype³ÌÐò´úÂëÇø¿éÖбàдÏÂÁгÌÐò´úÂ룬ÒÔ±ãΪBaseballTeamÀàÌí¼ÓÁíÒ»¸ö¹«Óз½·¨PlayGame2£¬´Ë·½·¨»áÒÔ¸ü¼òµ¥µÄ·½Ê½±í´ï±ÈÈüµÄʤ¸º£º
 PlayGame2 : function(Res) 
{
 if(Res == 'Win') 
{
this.Wins += 1; 
}
else
{
this.Defeats += 1;
}
},

×¢Ò⣺ÔÚ´ËÒªÌáÐÑ´ó¼Ò£¬ASP.NET AJAXËùÀ©Õ¹µÄJavaScript²¢Ã»ÓÐÖ§³Öº¯ÊýÖØÔØ£¨Function overloading£©¹¦ÄÜ£¬Èç¹ûÔÚͬһ¸öÀඨÒåÁ˶à¸öÏàͬÃû³ÆµÄº¯Êý£¬Ôòµ÷Óú¯Êýʱ½«»áµ÷ÓÃ×îºóÒ»¸öÔÚPrototype³ÌÐò´úÂëÇø¿éÖгöÏÖµÄͬÃûº¯Êý¡£

12£©Çë¼ÌÐøÔÚPrototype³ÌÐò´úÂëÇø¿éÖбàдÏÂÁгÌÐò´úÂ룬ÒÔ±ãΪBaseballTeamÀàÌí¼ÓÒ»¸öToString·½·¨£¬Ëü»áÒÔ×Ö·û´®µÄÐÎʽ·µ»Ø½á¹û£º

toString : function() 
{

return this.get_Name() + ", ±ÈÈü³¡µØ " + this.get_Stadium() +

"£º" + "Ó®" + this.Wins + "Êä" + this.Defeats;

}

13£©ÈçÏÂËùʾ£¬ÇëʹÓÃregisterClass·½·¨À´×¢²áBaseballTeamÀࣺ
AdultGroup.BaseballTeam.registerClass('AdultGroup.BaseballTeam', null, null); 

ÉÏÊö³ÌÐò´úÂë´ú±íÎÒÃǽ«ÔÚAdultGroupÃüÃû¿Õ¼äÖд´½¨Ò»¸öBaseballTeamÀ࣬ͬʱ´ËÀཫ²»¼Ì³ÐÈκÎÀàÒ²²»ÊµÏÖÈκνӿڡ£

14£©×îºó£¬ÎªÁËÈÃScriptManager¿Ø¼þÄܹ»ÕýÈ·´¦ÀíScriptÎĵµ£¬Ã¿Ò»¸öScriptÎĵµ±ØÐëÔÚ½áβ´¦µ÷ÓÃSys.Application.notify ScriptLoaded·½·¨£¬ÒÔ±ã֪ͨӦÓóÌÐòÒѾ­Íê³ÉScriptÎĵµµÄ¼ÓÔØ²Ù×÷£¬ÈçÏÂËùʾ£º

 if (typeof(Sys) !== 'undefined') Sys.Application.notifyScriptLoaded(); 

 

ÖÁ´Ë£¬ÎÒÃÇÒѾ­Íê³ÉBaseballTeamÀàµÄ¶¨Ò幤×÷¡£BaseballTeamÀàµÄÍêÕû³ÌÐò´úÂ븽ÓÚCH10ÏîÄ¿ÖеÄAdultGroup.jsÖУ¬Çë×ÔÐвο¼Ö®£¬Ôڴ˲»ÔÙÁгö¡£

 

15£©½ÓÏÂÀ´ÒªÊ¾·¶ÈçºÎÔÚÒ³ÃæÖÐʹÓÃBaseballTeamÀà¡£ÆäʵºóÐø²½ÖèËùÒª´´½¨µÄÒ³ÃæCH10_DemoForm001.aspxÒѸ½ÓÚCH10ÏîÄ¿ÖУ¬È»¶øÎªÁËÈôó¼ÒÇå³þÁ˽âÈçºÎÔÚÒ»¸öÒ³ÃæÖÐʹÓÃJavaScriptÀ࣬ÎÒÃÇÌØ±ð´ÓÍ·µ½Î²ËµÃ÷Æä´´½¨²½Öè¡£

 

ÏÖÔÚ£¬ÇëÈ·ÈÏÒÑÔÚVisual Studio 2005µÄ¼¯³É¿ª·¢»·¾³µÄ¡°½â¾ö·½°¸×ÊÔ´¹ÜÀíÆ÷¡±ÖÐÑ¡ÔñÍøÕ¾µÄ¸ù½Úµã£¬È»ºó´Ó¡°ÍøÕ¾¡±²Ëµ¥ÖÐÑ¡Ôñ¡°Ìí¼ÓÐÂÏÃüÁî¡£

 

16£©¡°Ìí¼ÓÐÂÏ¶Ô»°¿ò´ò¿ªºó£¬ÔÚ¡°Ä£°å¡±ÇøÓòÖÐÑ¡ÔñWeb Form£¬½Ó×ÅÔÚ¡°Ãû³Æ¡±Îı¾¿òÖÐÊäÈëÒ³ÃæµÄÎļþÃû³Æ¡£ÒÔ±¾Àý¶øÑÔ£¬ÇëÊäÈëCH10_DemoForm001.aspx£¬È»ºóµ¥»÷¡°Ìí¼Ó¡±°´Å¥¡£

 

17£©Ò»¸öASP.NET AJAXÒ³ÃæÒ»¶¨ÒªÓµÓжøÇÒÒ²Ö»ÄÜÓµÓÐÒ»¸öScriptManager¿Ø¼þ£¬Òò´ËÇëÄú´Ó¹¤¾ßÏäÖУ¬½«ScriptManager¿Ø¼þÍÏ·ÅÖÁÒ³ÃæÉÏ£¬´Ë¾Ù½«ÆôÓÃASP.NET AJAX¶ÔÓÚJavaScriptµÄÀ©Õ¹ÐÔÖ§³Ö¡£

 

18£©½ÓÏÂÀ´£¬ÇëÌí¼Ó¶ÔJavaScriptÎĵµµÄÒýÓã¬ÈçÏÂËùʾ£º
<asp:ScriptManager ID="ScriptManager1" runat="server"> 

 

  <Scripts>

 

    <asp:ScriptReference Path="~/Js/AdultGroup.js" />

 

  </Scripts>

 

</asp:ScriptManager>

 

Æäʵ£¬ASP.NET AJAXΪÁËÏìÓ¦²»Í¬Çé¿öµÄÐèÇó£¬Äܹ»¶¯Ì¬¸Ä±äScriptÎĵµµÄÒýÓã¬ÓйظıäÒýÓõķ½·¨Óë¼¼ÇÉÔÚÉÔºóµÄÕ½ڽ«ÓÐÍêÕûµÄ˵Ã÷¡£

 

19£©ÇëÎªÒ³ÃæÌí¼ÓTextArea¿Ø¼þÓëHtml°´Å¥¿Ø¼þ£¬²¢½«°´Å¥¿Ø¼þµÄvalueÊôÐÔÉ趨Ϊ¡°ÏÔʾ±ÈÈü½á¹û¡±¡£

 

20£©ÈçÏÂËùʾ£¬ÇëÔÚÒ³ÃæµÄ <head> ±êÇ©×éÄÚ£¬Ìí¼ÓJavaScript³ÌÐò´úÂëÇø¿éµÄÉùÃ÷ÃüÁ
<script type="text/javascript" language="javascript"> 

 

 

</script>
21£©ÇëÔÚJavaScript³ÌÐò´úÂëÇø¿éÄÚµÄonclickʼþ´¦Àíº¯ÊýÖбàдÏÂÁгÌÐò´úÂ룬ÒÔ±ãʹÓÃnewÔËËã·ûÀ´´´½¨Ò»¸öBaseballTeam¶ÔÏ󣬲¢½«¶ÔÏóÒýÓ÷û¸ø¾Ö²¿±äÁ¿sf£º

 

function Button1_onclick() 

 

{

 

var sf = new AdultGroup.BaseballTeam('ŦԼÑó»ù¶Ó', 'Yankee Stadium');

 

...

 

}
´ÓÉÏÊö³ÌÐò´úÂë¿ÉÒÔ·¢ÏÖ£¬´´½¨ASP.NET AJAX ¿Í»§¶ËÀࣨJavaScriptÀࣩʵÀýµÄ·½Ê½ÀàËÆÓÚ .NET Framework µÄ×÷·¨¡£

 

22£©Çë¼ÌÐøÔÚJavaScript³ÌÐò´úÂëÇø¿éÄÚµÄonclickʼþ´¦Àíº¯ÊýÖУ¬±àдÏÂÁгÌÐò´úÂëÀ´µ÷ÓÃPlayGameÓëPlayGame2·½·¨£¬ÒÔ±ã²úÉú±ÈÈü½á¹û£º

 


sf.PlayGame(7,2); 

 

sf.PlayGame2('Lose');
23£©Çë¼ÌÐøÔÚJavaScript³ÌÐò´úÂëÇø¿éÄÚµÄonclickʼþ´¦Àíº¯ÊýÖбàдÏÂÁгÌÐò´úÂ룬ÒÔ±ãÏÔʾ¶ÔÏóĿǰµÄ״̬£º
 $get('TextArea1').value = "ʤÂÊ£º" + sf.get_Record() + '\n'; 

 

$get('TextArea1').value += sf.toString();
ÖÁ´Ë£¬ÎÒÃÇÒѾ­Íê³ÉÒ³ÃæµÄÉè¼Æ¹¤×÷£¬¿ÉÒÔÖ±½ÓÖ´ÐÐÒ³ÃæÒÔ±ã²é¿´JavaScriptµÄÖ´Ðнá¹û¡£
 
ͼ10-1ÊÇÒ³Ãæ·¶ÀýCH10_DemoForm001.aspxµÄÖ´Ðл­Ã棬Ëüʾ·¶ÈçºÎʹÓÃAdultGroupÃü Ãû¿Õ¼äÓëBaseballTeamÀà¡£

 

Ò³Ãæ·¶Àý - ʾ·¶ÈçºÎʹÓÃÃüÃû¿Õ¼äÓëÀà

 

ͼ10-2ÊÇÒ³Ãæ·¶ÀýCH10_DemoForm002.aspxµÄÖ´Ðл­Ã棬Æä¹¦ÄÜÌØÐÔ˵Ã÷ÈçÏ£º

 

¡¤ÔÚÎı¾¿òÖÐÊäÈëÕýÈ·µÄÐÕÊÏ¡¢Ãû×Ö¡¢µç×ÓÓʼþÓëÆðн֮ºó£¬°´Ï¡°½¨Á¢Àà¶ÔÏó¡±°´Å¥½«»á´´½¨ÀàµÄʵÀý¡£ÊÂʵÉÏ£¬°´Å¥Ëù´´½¨µÄ¶ÔÏó¼´ÎªHuman.PersonʵÀý¡£

 

¡¤°´Ï¡°½¨Á¢Àà¶ÔÏó¡±°´Å¥Ö®ºó£¬Ï·½µ÷ÕûÔ±¹¤Ð½×ÊÇø¿éµÄ×îÉÏ·½×ֶλáÏÔʾ¸ÃÃûÔ±¹¤µÄÐÅÏ¢¡£´ËÍ⣬³ý·ÇÔÚ¡°¼Óн¶î¶È£º¡±»ò¡°¼õн¶î¶È£º¡±Îı¾¿òÖÐÊäÈëÎÄ×Ö£¬·ñÔòÓÒ²àµÄ¡°¼ÆË㡱°´Å¥½«ÎÞ·¨Ê¹Óá£

 

¡¤Èç¹ûÔÚ¡°¼Óн¶î¶È£º¡±Îı¾¿òËùÊäÈëµÄÊýÖµ³¬¹ýÔ±¹¤Ä¿Ç°ÆðнµÄ°Ù·Ö֮ʮ£¬Ôò»áÏÔʾÏûÏ¢¿òÌáʾÓû§¸ÃÃûÔ±¹¤µ÷ÕûºóµÄÆðн̫¸ß£¨Èçͼ10-3Ëùʾ£©¡£

 

¡¤Èç¹ûÔÚ¡°¼õн¶î¶È£º¡±Îı¾¿òËùÊäÈëµÄÊýÖµ³¬¹ýÔ±¹¤Ä¿Ç°ÆðнµÄ°Ù·Ö֮ʮ£¬Ôò»áÔÚ»­ÃæÏÔʾÏûÏ¢¿òÌáʾÓû§¸ÃÃûÔ±¹¤µ÷ÕûºóµÄÆðн̫µÍ¡£

 

Á˽âÁËÒ³Ãæ·¶ÀýCH10_DemoForm002.aspxµÄÌØÉ«Ö®ºó£¬ÎÒÃÇÀ´Ñо¿ÆäÉè¼Æ¼¼ÇÉ£º

 

¡¤ÈçÏÂËùʾ£¬ÇëÔÚÒ³ÃæµÄ <head>...</head> Ö®¼äÌí¼ÓÏÂÃæÒ»¶ÎJavaScript³ÌÐò´úÂ룺
 <script language="javascript" type="text/javascript"> 

 

<!--

 

var newPerson;

 

 

function pageLoad()

 

{

 

 $get('Button2').disabled = true;

 

}

 

 

function Button1_onclick()

 

{

 

 if($get('Text1').value == "")

 

 {

 

  alert("ÇëÊäÈëÐÕÊÏ¡£");

 

  return false;

 

 }

 

 

 

 if($get('Text2').value == "")

 

 {

 

  alert("ÇëÊäÈëÃû×Ö¡£");

 

  return false;

 

 }

 

 

 

 if($get('Text3').value == "")

 

 {

 

  alert("ÇëÊäÈëµç×ÓÓʼþ¡£");

 

  return false;

 

 }

 

 

 

 if($get('Text4').value == "")

 

 {

 

  alert("ÇëÊäÈëÆðн¡£");

 

  return false;

 

 }

 

 

 

 newPerson = new Human.Person(

 

  $get('Text2').value, $get('Text1').value, $get('Text3').value, $get('Text4').

 

    value);

 

 

 

 $get('personInfo').innerText = newPerson.get_LastName() + "," + newPerson.

 

   get_FirstName()

 

   + 'µÄÆðнÊÇ£º' + newPerson.salary;

 

}

 

 

function textKeyDown()

 

{

 

 $get('Button2').disabled = false;

 

}

 

 

function textKeyUp()

 

{

 

 if($get('Text5').value == "" && $get('Text6').value == "")

 

 {

 

  $get('Button2').disabled = true;

 

 }

 

 else

 

 {

 

  $get('Button2').disabled = false;

 

 }

 

}

 

 

function Button2_onclick()

 

{

 

 if($get('Text5').value != "")

 

 {

 

  newPerson.plusPersonSalary($get('Text5').value);

 

 }

 

 

 

 if($get('Text6').value != "")

 

 {

 

  newPerson.minusPersonSalary($get('Text6').value);

 

 }

 

 

 

 $get('personSalary').innerText = newPerson.get_LastName() + "," + newPerson.  

 

   get_FirstName()

 

   + 'ĿǰµÄн×ÊÊÇ£º' + newPerson.salary;

 

 $get('personInfo').innerText = newPerson.get_LastName() + "," + newPerson.

 

   get_FirstName()

 

+ 'µÄÆðнÊÇ£º' + newPerson.salary;

 

 $get('processResult').innerText = newPerson.sendMail();

 

}

 

// -->

 

</script>
ÉÏÃæÒ»¶ÎJavaScript³ÌÐò´úÂëµÄÖ÷ÒªÓÃ;˵Ã÷ÈçÏ£º

 

¡ó pageLoadʼþ´¦Àíº¯ÊýµÄ³ÌÐò´úÂë»á½ûÓá°¼ÆË㡱°´Å¥¡£

 

pageLoadʼþÒ²ÊÇÆäÖÐÒ»¸ö¿Í»§¶ËÒ³ÃæÉúÃüÖÜÆÚʼþ£¬Ò»µ©ÄúÔÚASP.NETÒ³ÃæÖÐÌí¼ÓÒ»¸öScriptManager¿Ø¼þ£¬pageLoadʼþ¾Í»á×Ô¶¯¸½¼ÓÖÁÒ³ÃæÉÏ¡£Óйؿͻ§¶ËÒ³ÃæÉúÃüÖÜÆÚʼþµÄ½øÒ»²½ËµÃ÷£¬Çë²ÎÔÄÉÔºóµÄÕ½ڡ£

 

¡ó Ϊ¡°½¨Á¢Àà¶ÔÏó¡±°´Å¥µÄClickʼþ±àдʼþ´¦Àíº¯ÊýButton1_onclick£¬¸Ãº¯Êý»áÅжÏÓû§ÊÇ·ñÊäÈëÁËÐÕÊÏ¡¢Ãû×Ö¡¢µç×ÓÓʼþÓëÆðн£¬Èç¹ûÊǵϰ£¬Ôò½«ÊäÈëÄÚÈݵ±×÷²ÎÊý´«µÝ¸øHuman.PersonÀàµÄ¹¹Ôìº