﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-Exciting IN JAVA WAY-文章分类-AJAX Dev</title><link>http://www.blogjava.net/cgogg/category/23075.html</link><description>Take Easy</description><language>zh-cn</language><lastBuildDate>Thu, 05 Jul 2007 05:59:00 GMT</lastBuildDate><pubDate>Thu, 05 Jul 2007 05:59:00 GMT</pubDate><ttl>60</ttl><item><title>动态图js脚本</title><link>http://www.blogjava.net/cgogg/articles/128299.html</link><dc:creator>chenguo</dc:creator><author>chenguo</author><pubDate>Thu, 05 Jul 2007 03:53:00 GMT</pubDate><guid>http://www.blogjava.net/cgogg/articles/128299.html</guid><wfw:comment>http://www.blogjava.net/cgogg/comments/128299.html</wfw:comment><comments>http://www.blogjava.net/cgogg/articles/128299.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cgogg/comments/commentRss/128299.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cgogg/services/trackbacks/128299.html</trackback:ping><description><![CDATA[动态图js脚本<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- 动态图开始 --&gt;<br><br>&lt;script language=JavaScript&gt;<br><br>&nbsp;<br><br>var imgUrl=new Array();<br><br>var imgLink=new Array();<br><br>var adNum=0;<br><br>imgUrl[1]="images/default/toplist/1.jpg";<br><br>imgLink[1]="/z/chn-iran/photo/3712/index.shtml";<br><br>imgUrl[2]="images/default/toplist/2.jpg";<br><br>imgLink[2]="/z/chn-iran/photo/3712/index.shtml";<br><br>imgUrl[3]="images/default/toplist/3.jpg";<br><br>imgLink[3]="/z/chn-iran/photo/3672/";<br><br>imgUrl[4]="images/default/toplist/4.jpg";<br><br>imgLink[4]="/z/chn-iran/photo/3672/";<br><br>imgUrl[5]="images/default/toplist/5.jpg";<br><br>imgLink[5]="/z/chn-iran/photo/3672/";<br><br>&nbsp;<br><br>&nbsp;<br><br>var imgPre=new Array();<br><br>var j=0;<br><br>for (i=1;i&lt;=5;i++) {<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if( (imgUrl[i]!="") &amp;&amp; (imgLink[i]!="") ) {<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; j++;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br><br>}<br><br>&nbsp;<br><br>function playTran(){<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (document.all)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imgInit.filters.revealTrans.play();<br><br>}<br><br>&nbsp;<br><br>var key=0;<br><br>function nextAd(){<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(adNum&lt;j)adNum++ ;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else adNum=1;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if( key==0 ){<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; key=1;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else if (document.all){<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imgInit.filters.revealTrans.Transition=6;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; imgInit.filters.revealTrans.apply();<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; playTran();<br><br>&nbsp;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.images.imgInit.src=imgUrl[adNum];<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; theTimer=setTimeout("nextAd()", 6000);<br><br>}<br><br>&nbsp;<br><br>&nbsp;<br><br>function goUrl(){<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jumpUrl=imgLink[adNum];<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jumpTarget='_blank';<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (jumpUrl != ''){<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (jumpTarget != '')<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; window.open(jumpUrl,jumpTarget);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; location.href=jumpUrl;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br><br>}<br><br>&lt;/script&gt;<br><br>&lt;a href="javascript:goUrl()"&gt;&lt;img style="FILTER: revealTrans(duration=2,transition=20);border-color:black;color:#000000" src="javascript:nextAd()" width=258 height=230 border=1 class=b1 name=imgInit&gt;&lt;/a&gt;<br><br>&lt;!-- 动态图结束 --&gt; <br><br><br><img src ="http://www.blogjava.net/cgogg/aggbug/128299.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cgogg/" target="_blank">chenguo</a> 2007-07-05 11:53 <a href="http://www.blogjava.net/cgogg/articles/128299.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>js焦点图片轮换--几个实例</title><link>http://www.blogjava.net/cgogg/articles/128292.html</link><dc:creator>chenguo</dc:creator><author>chenguo</author><pubDate>Thu, 05 Jul 2007 03:37:00 GMT</pubDate><guid>http://www.blogjava.net/cgogg/articles/128292.html</guid><wfw:comment>http://www.blogjava.net/cgogg/comments/128292.html</wfw:comment><comments>http://www.blogjava.net/cgogg/articles/128292.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cgogg/comments/commentRss/128292.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cgogg/services/trackbacks/128292.html</trackback:ping><description><![CDATA[&nbsp; &lt;!-- flashpic begin --&gt;<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &lt;!--焦点图开始--&gt;<br>&nbsp;&nbsp;&nbsp; &lt;SCRIPT type=text/javascript&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var focus_width=290<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var focus_height=170<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var text_height=20<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var swf_height = focus_height+text_height<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var pics=&#8216;1.jpg|2.jpg|3.jsp|4.jpg|5.jpg|&#8216;; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var links='index.php|http://auto.qq.com/a/20051029/000009.htm|';<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var texts='靛蓝走过花季的梦幻|忧郁因为思念的凝滞|偶尔的童心盛开烂漫|更多时候一个人独处|一直在旁的亲密伴侣';<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.write('&lt;object ID="focus_flash" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="'+ focus_width +'" height="'+ swf_height +'"&gt;');<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.write('&lt;param name="allowScriptAccess" value="sameDomain"&gt;&lt;param name="movie" value="http://auto.qq.com/flash/playswf.swf"&gt;&lt;param name="quality" value="high"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;');<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.write('&lt;param name="menu" value="false"&gt;&lt;param name=wmode value="opaque"&gt;');<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.write('&lt;param name="FlashVars" value="pics='+pics+'&amp;links='+links+'&amp;texts='+texts+'&amp;borderwidth='+focus_width+'&amp;borderheight='+focus_height+'&amp;textheight='+text_height+'"&gt;');<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.write('&lt;embed ID="focus_flash" src="playswf.swf" wmode="opaque" FlashVars="pics='+pics+'&amp;links='+links+'&amp;texts='+texts+'&amp;borderwidth='+focus_width+'&amp;borderheight='+focus_height+'&amp;textheight='+text_height+'" menu="false" bgcolor="#C5C5C5" quality="high" width="'+ focus_width +'" height="'+ swf_height +'" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /&gt;');<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; document.write('&lt;/object&gt;');<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //--&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/SCRIPT&gt;<br><br>下面是falsh文件：<object xcodebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab" height="200" width="200"  classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"> <param name="Movie" value="/images/blogjava_net/cgogg/playswf.swf" /> <param name="Quality" value="high"/><param name="wmode" value="transparent"/><embed src="http://www.blogjava.net/images/blogjava_net/cgogg/playswf.swf" width="200" height="200"  quality="high" wmode="transparent"     type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed>
</object>
<br>一些好的下载链接：http://blog.csdn.net/suilam/archive/2005/12/15/553280.aspx
<br>lash轮播广告
<br>http://bbs.blueidea.com/viewthread.php?tid=2374504&amp;page=
<br><strong>[下载]经典代码一次全下载！(flash幻灯片，图片幻灯片都有）</strong>
<br>http://bbs.powereasy.net/dispbbs.asp?boardID=28&amp;ID=290178&amp;page=10
<br><img src="http://www.zcool.com.cn/templets/images/jt.gif" alt="小箭头" class="noborder" align="absmiddle"> <a href="http://www.zcool.com.cn/jscode/ggcode/20070624/code_0624VH007.html" title="韩国flash焦点大图广告代码"><strong> 韩国flash焦点大图广告代码</strong> </a> /  / 2007-06-24
<br>http://www.zcool.com.cn/jscode/ggcode/page_2.html
<br>&nbsp;<br><img src ="http://www.blogjava.net/cgogg/aggbug/128292.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cgogg/" target="_blank">chenguo</a> 2007-07-05 11:37 <a href="http://www.blogjava.net/cgogg/articles/128292.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ajax框架</title><link>http://www.blogjava.net/cgogg/articles/128157.html</link><dc:creator>chenguo</dc:creator><author>chenguo</author><pubDate>Wed, 04 Jul 2007 09:58:00 GMT</pubDate><guid>http://www.blogjava.net/cgogg/articles/128157.html</guid><wfw:comment>http://www.blogjava.net/cgogg/comments/128157.html</wfw:comment><comments>http://www.blogjava.net/cgogg/articles/128157.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cgogg/comments/commentRss/128157.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cgogg/services/trackbacks/128157.html</trackback:ping><description><![CDATA[<br>var request =false;<br><br>function createXMLHttpRequest() {<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;request = false;<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if(window.XMLHttpRequest) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; request = new XMLHttpRequest();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if(request.overrideMimeType) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; request.overrideMimeType('text/xml');<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } else if(window.ActiveXObject) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var versions = <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ['Microsoft.XMLHTTP', 'MSXML.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.7.0', 'Msxml2.XMLHTTP.6.0', 'Msxml2.XMLHTTP.5.0', 'Msxml2.XMLHTTP.4.0',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP'];<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; for(var i=0; i&lt;versions.length; i++) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; try {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; request = new ActiveXObject(versions[i]);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if(request) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return request;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } catch(e) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; //alert(e.message);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; alert("1");<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (!request) { // 异常，创建对象实例失败<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; window.alert("不能创建XMLHttpRequest对象实例.");<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return false;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return request;<br>&nbsp;&nbsp;&nbsp; }<br><br>function ajaxpost(targetUrl,sendString,resultHandle){<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; request = createXMLHttpRequest();<br><br>&nbsp;&nbsp;&nbsp; request.onreadystatechange = resultHandle;<br><br>&nbsp;&nbsp;&nbsp; request.open("post",targetUrl);&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; <br><br>&nbsp;&nbsp;&nbsp; request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");<br>&nbsp;&nbsp;&nbsp; request.setRequestHeader("Content-length", sendString.length);<br>&nbsp;&nbsp;&nbsp; request.setRequestHeader("Connection","close");<br><br>&nbsp;&nbsp;&nbsp; request.send(sendString);<br><br>}<br><br>function ajaxget(targetUrl,resultHandle){<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; request = createXMLHttpRequest();<br><br>&nbsp;&nbsp;&nbsp; request.onreadystatechange = resultHandle;<br><br>&nbsp;&nbsp;&nbsp; request.open("get",targetUrl);&nbsp;&nbsp;&nbsp; <br><br>&nbsp;&nbsp;&nbsp; request.send(null);<br><br>}<br><br><br>//处理结果<br>function handle(){<br>if (request.readyState == 4) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (request.status == 200) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //alert(request.responseText);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var result = request.responseText;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; document.getElementById('welcome').style.display="";<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; document.getElementById('user').style.display="";<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; document.getElementById('loginform').style.display="none";<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementById('user').innerHTML = result;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert('There was a problem with the request.');<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br><br>}<br><br><br><br><br>//调用<br>function check(){<br><br>var tartgeUrl="login.php";<br>var params ="username=" + encodeURI( document.getElementById("username").value ) +"&amp;password=" + encodeURI( document.getElementById("password").value );<br>alert("start"+params);<br>ajaxpost(tartgeUrl,params,handle);<br>}<br>&nbsp;<br><img src ="http://www.blogjava.net/cgogg/aggbug/128157.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cgogg/" target="_blank">chenguo</a> 2007-07-04 17:58 <a href="http://www.blogjava.net/cgogg/articles/128157.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DHTML应用开发</title><link>http://www.blogjava.net/cgogg/articles/127810.html</link><dc:creator>chenguo</dc:creator><author>chenguo</author><pubDate>Tue, 03 Jul 2007 04:38:00 GMT</pubDate><guid>http://www.blogjava.net/cgogg/articles/127810.html</guid><wfw:comment>http://www.blogjava.net/cgogg/comments/127810.html</wfw:comment><comments>http://www.blogjava.net/cgogg/articles/127810.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cgogg/comments/commentRss/127810.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cgogg/services/trackbacks/127810.html</trackback:ping><description><![CDATA[本文介绍了IE和Navigator两种浏览器对DHTML标准实现的差异，特别是如何编写Navigator中运行的DHTML程序。
<br>
<br>
<br>　　DHTML(Dynamic
HTML)是W3C组织提出的一种新的规范，它对原有的HTML做了许多扩充，并结合Javascript，使得静态的HTML页面产生了许多动态效果，
例如菜单的展开和收起，页面元素的外观动态改变等。IE 4.0以上，Navigator
4.0以上的版本都支持这个标准。但是，不同的浏览器厂家对它都做了不同程度的扩充。以最流行IE的和NS为例，IE的实现更接近于W3C的方案，而
NS，说实话，与W3C的方案差异很大，而且并没有完全实现，甚至可以说是另一套方案。笔者在初识DHTML时，按照书上讲的编写了几个小程序，在IE上
一试就通，而在NS上可以说费尽了周折才逐渐找到解决方案。由于市面上很少有讲述NS的DHTML实现方案的书(大概NS由于的实现不符合标准)，而真正
的商业网站至少应同时支持IE和NS这两种主要的浏览器，我愿意把我的一些心得写出来与大家共享，使大家不必再走我走过的弯路。对于二者的实现相同的部
分，本文作一简略介绍，您若有兴趣可参考有关书籍或网上资源。 <br>
<br>
<br>　　DHTML实际上由三两部分组成：CSS(Cascade Style Sheet，级联样式表)，层(Layer)和Javascript。
<br>
<br>
<br>　　所谓CSS，概念上类似于C++中的类，在类定义中指明元素的外观样式，如字体，颜色，大小等等，页面中的任何一个HTML元素如被指定属于
这个类，就自动拥有该类的特性；还可以为某种HTML元素定义样式，这样页面中的所有这种元素都有了同样的外观。如果将这样的样式定义存在一个单独的.
css文件中(就象C++那样将类定义存在
.h文件中)，再在页面中将其包含进来，则一个网站的所有页面就有了同样的外观。IE和NS对CSS的实现基本相同，在此就不再详细介绍了。 <br>
<br>
<br>　　两者的差异主要体现在层的实现上。所谓层，就是页面上的一块区域，其中可以包含任何的HTML元素，通过改变层的属性，其间的元素可以跟着出
现，消失，更改，移动等。
在IE中，层依靠&lt;DIV&gt;&lt;/DIV&gt;和&lt;SPAN&gt;&lt;/SPAN&gt;来实现，两者基本相同，通常
&lt;DIV&gt;用于较大的层，&lt;SPAN&gt;用于较小的层，并且&lt;DIV&gt;在实现的层后面加上一个回车换行，而&lt;
SPAN&gt;不加。它的语法如下(二者相同)： <br>
<br>
<br>　　&lt;div id=layername style="style definition"&gt;Layer content&lt;/div&gt; 或
<br>
<br>
<br>　　&lt;div id=layername class="classname"&gt;Layer content&lt;/div&gt;
<br>
<br>
<br>　　其中style definition是一组有分号隔开的样式定义，常用的有以下几种：
<br>
<br>
<br>　　position：其值可以为absolute和relative，所谓absolute(绝对定位)，就是层的内容不必按照出现的先后次序
在浏览器上依次排列，而是可以像素为单位定位到浏览器用户区域的任意位置；而relative(相对定位)则是层按照相邻的内容依次排列。 <br>
<br>
<br>　　left，top，width，height：指层的左上角坐标以及它的宽度和高度。
<br>
<br>
<br>　　z-index：由于层可以被放置在页面的任何位置，当它与其它内容重合时，z-index值大的显示在上面，所有层的z-index值为
1。但是在NS中，所有的表单元素(文本框，列表框，按钮等)，只要是可见的就无法被遮住，而无论z-index值是多少。因此在设计页面时，要注意不要
使动态出现或隐藏的元素(例如弹出式菜单)的位置上放置表单元素。 <br>
<br>
<br>　　Visibility：指明层是否可见，通过在程序中动态改变这个值，可以实现层的出现和消失，比如下拉菜单就要依靠它来实现。它的三个候选
值为：inherit，可见性与父元素的可见性相同；visible，可见(在NS中是show)；hidden，不可见(在NS中是hide)。 <br>
<br>
<br>　　NS同样支持这两个标记，但是支持得很不好，经常出现一些莫名其妙的错误，我想这可能是出于策略上的考虑，而不见得是NS的产品质量不好。
NS引入了另两个标记，&lt;layer&gt;和&lt;ilayer&gt;，&lt;layer&gt;用于绝对定位，&lt;
ilayer&gt;用于相对定位，因此在这两个标记的样式定义中没有position属性。 <br>
<br>
<br>　　两个浏览器对层的不同实现体现在以下几点：
<br>
<br>
<br>　　1.
层的引用。在IE中，页面上的每个可编程元素(不仅是层，还包括其它任何指明了ID值的元素，详见下文)都是document.all集合的一项；而在
NS中，页面中每个层，无论是用上面四个标记中的哪个定义的，也无论是绝对或是相对定位，都是document.layers集合的一项。因此，若想引用
名为layer1的层，应以如下语法： <br>
<br>
<br>　　IE：document.all["layer1"]或document.all.layer1
<br>
<br>
<br>　　NS：document.layers["layer1"]或document.layers.layer1
<br>
<br>
<br>　　2.
层的坐标和大小。在IE中，每个涉及层的外观的属性，如位置，大小，颜色等，都是层的style属性集合的以一项，如层的左上角x坐标为
document.all.layer1.style.pixelLeft，y坐标为
document.all.layer1.style.pixelTop，宽度为
document.all.layer1.style.pixelWidth，高度为
document.all.layer1.style.pixelHeight。还有几组属性如scrollxxx，offsetxxx，
clientxxx，其中xxx为Left，Top，Width，Height
，分别描述层的滚动，位移，客户区等属性，详见MSDN中关于坐标的描述。而在NS中，每个层都有一个clip属性集，x，y，width，height
是这个集的集合元素。 <br>
<br>
<br>　　另外，IE中所有元素拥有同一个坐标系，无论它位于层外或层内；在NS中，每个层都有一个独立的坐标系。
<br>
<br>
<br>　　3. 层的内容。IE中的层包含innerHTML和outerHTML属性(由于并非描述层的外观，所以它们不是style属性集的元素，而是层的属性)，其含义如下：
<br>
<br>
<br>　　innerHTML：层中的HTML代码，但是不包括层的定义。
<br>
<br>
<br>　　outerHTML：层中的HTML代码，且包括层的定义。
<br>
<br>
<br>　　改变这些属性值就可以改变层的内容，如下语句改变层layer1的内容为加粗的字符串"layer1"：
document.all.layer1.innerHTML=&#8221;&lt;b&gt;layer1&lt;/b&gt;&#8221;
，而在NS中，每一个document.layers集合中的元素，即一个层，都NS被视为一个独立的窗口，有独立document属性，就象
Javascript中的document属性一样，通过调用document.write函数，可以动态改变层的内容。上例在NS中应修改为： <br>
<br>
<br>　　document.layers.layer1.document.open();
<br>
<br>
<br>　　doucment.layers.layer1.write("&lt;div&gt;&lt;b&gt;layer1&lt;/b&gt;&lt;/div&gt;");
<br>
<br>
<br>　　document.layers.layer1.document.close;
<br>
<br>
<br>　　同样，对于层中的其它可编程元素，例如图象，其引用语法如下：
document.layers.layer1.document.images[imgname]，而如果该图象位于层的外面，其语法应为
document.images[imgname]，而在IE中，无论图象位于层内或层外，其语法都是后者。 <br>
<br>
<br>　　Javascript是Netscape公司首先提出的一种客户端编程的脚本语言，随后有扩展到服务器端。它的语法和概念都类似于C++，但
是没有C++那样严格。IE同样支持客户端Javascript(微软还推出了类似的，功能更强大的Vbscript，但是NS却不支持)。两种浏览器对
Javascript的基本实现是一样的，但是又都对它做了许多不同的扩展，而在DHTML编程中，很多情况下都需要用到这些扩展。由于此时已经没有标准
可遵循，二者已经看不出有相同之处。例如，浏览器的客户区的宽度，在IE中是document.body.clientWidth，在NS中是
window.innerWidth；再比如你想知道用户按浏览器的滚动条滚动了多少像素，在IE中是document.body.scrollTop，
在NS中是window.pageYOffset。在这种情况下，你只能查阅二者的文档。IE的Javascript文档包含在MSDN中，也可以到微软
的站点上单独下载。NS的Javascript文档可以到
http://developer.netscape.com上下载，那里也能得到NS的DHTML文档。 <br>
<br>
<br>　　NS没有实现的功能。
<br>
<br>
<br>　　1.IE中，页面中的任何元素都是可编程的，只要赋予它ID属性，其语法如下：
<br>
<br>
<br>　　&lt;div id=itemid&gt;content&lt;/div&gt;或&lt;span id=itemid&gt;content&lt;/span&gt;
<br>
<br>
<br>　　而在NS中，除非元素位于层中，否则无法对它编程。
<br>
<br>
<br>　　2.IE中增添了元素的渐变(Transition)和滤镜(Filter)效果，NS中没有。
<br>
<br>
<br>　　3.IE中支持客户端的数据绑定(Data bind)，即页面中的某个元素(例如表格中的一个格)可以与服务器端的数据库的某个字段绑定，在数据内容不变的情况下，可以不必再次访问数据库而改变页面的形式(例如按某个字段重新排序)。NS同样没有实现这种特性。
<br>
<br>
<br>　　以上列举了二者的如此之多的差别，那我们如何编写跨浏览器的DHTML页面呢？一种方法是编写两个独立的页面，而在入口文件中根据浏览器的不同而重定向到不同的页面，如：
<br>
<br>
<br>　　&lt;HTML&gt;&lt;BODY&gt;
<br>
<br>
<br>　　&lt;Script Language="Javascript"&gt;
<br>
<br>
<br>　　isNS=(navigator.appName=="Netscape");
<br>
<br>
<br>　　if (isNS)
<br>
<br>
<br>　　 window.location="ns.html";
<br>
<br>
<br>　　else
<br>
<br>
<br>　　 window.location="ie.html";
<br>
<br>
<br>　　&lt;/Script&gt;
<br>
<br>
<br>　　&lt;/BODY&gt;&lt;/HTML&gt;
<br>
<br>
<br>　　这种方法简单，页面整洁，缺点是有很大冗余，毕竟一个页面中程序是少量的，大部分静态内容在两个浏览器中并没有区别，一旦静态的内容发生改变必须在两个页面中一起更改，而且当包含DHTML的页面增多时，每一个页面都需要三个页面来实现，增大了维护的负担。
<br>
<br>
<br>　　另一种方法是在同一个页面中集成两个浏览器的代码。在每一个实现特定功能的函数中都根据浏览器的不同分别写代码，如：
<br>
<br>
<br>　　&lt;HTML&gt;&lt;BODY&gt;
<br>
<br>
<br>　　&lt;Script Language="Javascript"&gt;
<br>
<br>
<br>　　isNS=(navigator.appName=="Netscape");
<br>
<br>
<br>　　function fun1(){
<br>
<br>
<br>　　if (isNS)
<br>
<br>
<br>　　 //NS codes here
<br>
<br>
<br>　　else
<br>
<br>
<br>　　 //IE codes here
<br>
<br>
<br>　　}
<br>
<br>　　&lt;/Script&gt;
<br>
<br>　　&lt;/BODY&gt;&lt;/HTML&gt;
<br>
<br>　　对于HTML代码也不同的部分，可以利用Javascript函数 document.writeln()来实现，例如对于层的定义，可以如下实现：
<br>
<br>　　&lt;Script Language="Javascript"&gt;
<br>
<br>　　 if(isNS)
<br>
<br>　　 document.writeln("&lt;layer id=\"layer1\" left=20 top=30 width=40 height=50 z-index=2&gt;");
<br>
<br>　　 else
<br>
<br>　　 document.writeln("&lt;div id=\"layer1\" style=\"position:absolute;left:20;top:30;width:40;height:50;z-index:2\"&gt;");
<br>
<br>　　&lt;/Script&gt;
<br>
<br>　　Layer content here
<br>
<br>　　&lt;Script Language="Javascript"&gt;
<br>
<br>　　 if(isNS)
<br>
<br>　　 document.writeln("&lt;/layer&gt;");
<br>
<br>　　 else
<br>
<br>　　 document.writeln("&lt;/div&gt;");
<br>
<br>
<br>　　&lt;/Script&gt;
<br>
<br>　　这种实现方法维护简单，缺点是失去了页面编辑器所见即所得的特性(因为只有到运行时才能将层的定义写入浏览器，在编辑阶段它们只是些
Javascript程序)，调整层的坐标和大小都比较困难。在实际编程中可以先按一种浏览器的定义写，待调整完毕后再将它转成另一种定义。但总的来说，
这种办法适合对HTML标准比较熟悉的开发人员。
<br><img src ="http://www.blogjava.net/cgogg/aggbug/127810.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cgogg/" target="_blank">chenguo</a> 2007-07-03 12:38 <a href="http://www.blogjava.net/cgogg/articles/127810.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>下拉菜单全攻略-JavaScript篇</title><link>http://www.blogjava.net/cgogg/articles/127807.html</link><dc:creator>chenguo</dc:creator><author>chenguo</author><pubDate>Tue, 03 Jul 2007 04:29:00 GMT</pubDate><guid>http://www.blogjava.net/cgogg/articles/127807.html</guid><wfw:comment>http://www.blogjava.net/cgogg/comments/127807.html</wfw:comment><comments>http://www.blogjava.net/cgogg/articles/127807.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cgogg/comments/commentRss/127807.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cgogg/services/trackbacks/127807.html</trackback:ping><description><![CDATA[自适应分辨率可扩展二层JS下拉菜单
<br>
<br>序言：
<br>
<br>随着互联网的普及和网页制作技术的发展，越来越多的网友开始制作自己的网站。做为网站最重要的部分—导航菜单也出现了各式各样的设计和制作方法。
其中下拉式导航菜单已经成为多栏目大信息量网站的首选导航方式。那么，在下面我将简单介绍一下众多下拉菜单制作方法中完全使用JS自动生成的&#8220;自适应分辨
率可扩展二层JS下拉菜单&#8221;的工作原理和使用方法。
<br>
<br>1、 S下拉菜单原理
<br>
<br>下拉菜单实际上就是在开始的时候显示一级或者说是主菜单（图一）。当触发条件（例如：鼠标移动到上面时）显示次级菜单（图二）。
<br>
<br>图一
<br>
<br>
<br>图二
<br>
<br>
<br>那么如何实现这样的效果呢。其实很简单。所有的下拉菜单都是通过图层的显隐来实现的。在文件下载的时候，其实主菜单和次级菜单都以经形成或者说下
载到了客户端也就是你的机器里。只是次级菜单被隐藏起来。隐藏的方法一般是使用javascript
配合css控制次级菜单的图层的属性visibility为隐藏
<br>。所以在开始的使用你是看不见次级菜单的。当满足触发条件（例如：鼠标移动到上面）时，在使用javascript来控制次级菜单显示。当在次满足触发条件时（例如：鼠标移开），控制次级菜单隐藏。
<br>
<br>我们现在讲的这个&#8221; 自适应分辨率可扩展二层JS下拉菜单&#8221;可以自动适应浏览器分辨率的改变始终保持相对位置。可以方便的自己定制菜单显示内容及连接页面。可以随意扩充主导航和次导航的栏目个数。可以自由改变连接和导航表格的样式和外观等等。
<br>
<br>2、"自适应分辨率可扩展二层JS下拉菜单"js代码详解
<br>
<br>
<br>//--------------- 主导航条内容 ------------//
<br>var mainLayer=new Array("蓝色理想","动意营造");//主导航栏目
<br>
<br>//--------------- 次导航条内容 ------------//
<br>var subLayer0=new Array("论坛","文献"); //导航栏目一下的次级栏目
<br>var subLayerHttp0=new Array("#","#");&#8217;&#8217;;//主导航栏目一下的次级栏目连接地址
<br>var subLayer1=new Array("论坛","文献");//导航栏目二的次级栏目
<br>var subLayerHttp1=new Array("#","#");//主导航栏目二的次级栏目连接地址
<br>
<br>
<br>
<br>//--------------- 主导航条Table参数调整 ------------//
<br>var mainTableTdWidth=100; //每个TD的宽度，调整主导航内容间距
<br>var mainTableBorder=0; //调整主导航表格边框宽度
<br>var mainTableCellspacing=0; //调整主导航表格Cellspacing
<br>var mainTableCellpadding=1; //调整主导航表格Cellpadding
<br>var mainTableBgcolor="#000000"; //调整主导航表格背景色
<br>var mainTableBordercolor=""; //调整主导航表格编框颜色
<br>var mainTableBackgroundImg=""; //调整主导航表格背景图片url地址
<br>var hrefClassName="link" //调整url风格样式
<br>var mainTableTdBgcolor="B2CBCF"; //调整主导航表格Td色
<br>
<br>//--------------- 次导航条Table参数调整 ------------//
<br>var subTableBorder=0; //调整次导航条表格边框宽度
<br>var subTableCellspacing=0; //调整次导航条表格Cellspacing
<br>var subTableCellpadding=1; //调整次导航条表格Cellpadding
<br>var subTableBgcolor="#000000"; //调整次导航条表格背景色
<br>var subTableBordercolor=""; //次导航条表格编框颜色
<br>var subTableBackgroundImg=""; //次导航条表格背景图片url地址
<br>var subTableTdBgcolor="B2CBCF"; //调整次导航表格Td色
<br>var sbuTabbleTop=21; //次导航表格上下微调
<br>var sbuTabbleLeft=-1; //次导航表格左右微调
<br>
<br>//--------------- 系统参数*请勿调整 ------------//
<br>var layerMax=mainLayer.length+10;
<br>var layerName=&#8221;index&#8221;
<br>
<br>//--------------- 生成下拉菜单 ------------//
<br>function createMainLayer(){
<br>document.write("
<table border="0" cellpadding="0" cellspacing="0">
    <tbody>
        <tr>
            <td>
            <div id="wall" onmouseout="layervib('visible','&quot;+layerMax+&quot;')" style="position: relative; left: 0px; top: 0px; width: 100%; z-index: 1;">");
            <br>for(i=0;i<mainlayer.length;i++){><br>document.write("</mainlayer.length;i++){>");
            <br>}
            <br>document.write("
            <table background="&quot;+mainTableBackgroundImg+&quot;" bgcolor="#0000b0" border="1" bordercolor="#0000b0" cellpadding="&quot;+mainTableCellpadding+&quot;" cellspacing="&quot;+mainTableCellpadding+&quot;" width="">
                <tbody>
                    <tr>
                        <td class="&quot;+hrefClassName+&quot;" onmouseover="layervib('visible','&quot;+i+&quot;')" bgcolor="#0000b0" width="&quot;+mainTableTdWidth+&quot;">&nbsp;<a href="http://www.6to23.com/s15/s15d1/s15d1d6/s15d1d6d5/s15d1d6d5d5/200291613567.htm#">"+mainLayer[i]+"</a></td>
                    </tr>
                </tbody>
            </table>
            ");
            <br>
            <br>for(j=0;j<mainlayer.length;j++){><br>createSubLayer(j);
            <br>}
            <br>document.write("</mainlayer.length;j++){></div>
            </td>
        </tr>
    </tbody>
</table>
");
<br>}
<br>
<br>
<br>//--------------- 生成每项下拉菜单内容 ------------//
<br>function createSubLayer(num){
<br>var subLayerName= layerName +num;
<br>var subLayerLeft=(mainTableTdWidth*num)+mainTableCellpadding+mainTableBorder;
<br>var subLayerList=eval("subLayer"+num);
<br>var subLayerHttpList=eval("subLayerHttp"+num);
<br>document.write("
<div id="&quot;+subLayerName+&quot;" style="position: absolute; z-index: 2; height: 24px; visibility: hidden;" onmouseover="layervib('visible','&quot;+num+&quot;')" onmouseout="layervib('visible','&quot;+layerMax+&quot;')">");
<br>if(subLayerList.length!=0){
<br>document.write("<br>for(h=0;h<sublayerlist.length;h++){><br>
<br>document.write("</sublayerlist.length;h++){>");
<br>}
<br>document.write("
<table )="" background="&quot;+subTableBackgroundImg+&quot;" bgcolor="#00b00e" border="1" bordercolor="#00b00e" cellpadding="&quot;+subTableCellpadding+&quot;" cellspacing="&quot;+subTableCellpadding+&quot;" width="100">
    <tbody>
        <tr>
            <td class="link" bgcolor="#00b00e" width="100%">&nbsp;<a href="http://www.6to23.com/s15/s15d1/s15d1d6/s15d1d6d5/s15d1d6d5d5/%22+%20subLayerHttpList%20%5Bh%5D+%22" class="link">"+subLayerList[h]+"</a>&nbsp;</td>
        </tr>
    </tbody>
</table>
");
<br>}
<br>document.write("</div>
");
<br>
<br>}
<br>
<br>//------------------------------次菜单显隐控制--------------------------//
<br>function layervib(type,num){
<br>var H=type;
<br>var temp=(H='visible'?'hidden':'visible')
<br>for(var i=0;i<mainlayer.length;i++){><br>var E=eval('document.all.index'+i+'.style');
<br>var H=eval(i);
<br>if(i==num){E.visibility=type}else{E.visibility=temp};
<br>}
<br>}
<br>
<br>3、"自适应分辨率可扩展二层JS下拉菜单"js代码使用方法。
<br>
<br>(1) 将上面的代码存储为js_daohang.js.放在和调用的页面同一个目录下。
<br>(2) 在需要使用的叶面中在如下位置添加<script language="javascript" src="http://www.6to23.com/s15/s15d1/s15d1d6/s15d1d6d5/s15d1d6d5d5/js_daohang.js">
<br>
<br><html>
<br><head>
<br>
<title>平安证券柜台系统...</title>
<br><meta http-equiv="Content-Type" content="text/html; charset="gb2312"">
<br><link rel="stylesheet" href="text.css" type="text/css">
<br><script language="javascript" src="js_daohang.js">
<br></head>
<br>（3）在需要显示下拉菜单的地方使用
<br><script language="javascript">
<br>createMainLayer();
<br></script>
<br>来产生菜单。如下例。可以随意摆放到页面的任何位置。
<br>
<br></mainlayer.length;i++){><br><br><br><br><br>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
    <tbody>
        <tr>
            <td width="300">&nbsp;</td>
            <td align="center" width="71%">
            <br><script language="javascript">
<br>createMainLayer();
<br></script>
            <br></td>
        </tr>
    </tbody>
</table>
<br>(4)、如何添加新的主菜单及次级菜单的栏目。
<br>假设我们要在已有的栏目里新增加一个&#8220;七色鸟&#8221;栏目。下面有&#8220;论坛&#8221;和&#8220;文献&#8221;两个次级栏目。那么我么首先要在代码的如下部分添加&#8220;七色鸟&#8221;。
<br>
<br>var mainLayer=new Array("蓝色理想","动意营造",&#8221;七色鸟&#8221;);//主导航栏目
<br>0 1 2
<br>
<br>然后在如下的位置添加&#8220;论坛&#8221;和&#8220;文献&#8221;栏目及连接地址。
<br>
<br>var subLayer0=new Array("论坛","文献"); //导航栏目一下的次级栏目
<br>var subLayerHttp0=new Array("#","#");&#8217;&#8217;;//主导航栏目一下的次级栏目连接地址
<br>var subLayer1=new Array("论坛","文献");//导航栏目二的次级栏目
<br>var subLayerHttp1=new Array("#","#");//主导航栏目二的次级栏目连接地址
<br>var subLayer2=new Array("论坛","文献");//导航栏目三的次级栏目
<br>var subLayerHttp2=new Array("#","#");//主导航栏目三的次级栏目连接地址
<br>
<br>注意：蓝色部分是需要新添加的部分。红色部分是要修改的部分。要和上面的编号一一对应。 (5)、其他细节调整请参考代码详解部分。
<br>
<br>4、附注及扩充。
<br>
<br>代码中主要使用的函数及方法详解。
<br>Document.write(&#8220;tmp&#8221;)在页面中写入tmp.
<br>var subLayerHttp1=new Array();定义一个新的数组subLayerHttp1.
<br>For(I=0;I<br>var temp=(H=值1?值2:值3)当H的值等于值1的时候temp等于值2。反之temp的值等于值3。
<br>
<br>增强功能。
<br>//--------------- 系统参数*请勿调整 ------------//
<br>var layerMax=mainLayer.length+10;
<br>var layerName=&#8221;index&#8221;
<br>
<br>可以设置layerName=其他字段以生成新的下拉菜单。使页面内共存两个下拉菜单。
<br>
<br>如有任何问题请联系我。Jiangyf@paic.com.cn
<br>
<br>全文完。
<br><img src ="http://www.blogjava.net/cgogg/aggbug/127807.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cgogg/" target="_blank">chenguo</a> 2007-07-03 12:29 <a href="http://www.blogjava.net/cgogg/articles/127807.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JavaScript[对象.属性]集锦</title><link>http://www.blogjava.net/cgogg/articles/127803.html</link><dc:creator>chenguo</dc:creator><author>chenguo</author><pubDate>Tue, 03 Jul 2007 04:15:00 GMT</pubDate><guid>http://www.blogjava.net/cgogg/articles/127803.html</guid><wfw:comment>http://www.blogjava.net/cgogg/comments/127803.html</wfw:comment><comments>http://www.blogjava.net/cgogg/articles/127803.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cgogg/comments/commentRss/127803.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cgogg/services/trackbacks/127803.html</trackback:ping><description><![CDATA[<strong>SCRIPT 标记</strong>
<br>
<br>用于包含JavaScript代码.
<br>
<br>语法
<br>
<br>属性
<br>
<br>LANGUAGE 定义脚本语言
<br>
<br>SRC 定义一个URL用以指定以.JS结尾的文件
<br>
<br>
<br><strong>windows对象</strong>
<br>
<br>
<br>每个HTML文档的顶层对象.
<br>
<br>属性
<br>
<br>frames[] 子桢数组.每个子桢数组按源文档中定义的顺序存放.
<br>
<br>feames.length 子桢个数.
<br>
<br>self 当前窗口.
<br>
<br>parent 父窗口(当前窗口是中一个子窗口).
<br>
<br>top 顶层窗口(是所有可见窗口的父窗口).
<br>
<br>status 浏览器状态窗口上的消息.
<br>
<br>defaultStatus 当status无效时,出现在浏览器状态窗口上的缺省消息.
<br>
<br>name 内部名,为由window.open()方法打开的窗口定义的名字.
<br>
<br>
<br><strong>方法 </strong>
<br>
<br>alert("message") 显示含有给定消息的"JavaScript Alert"对话框.
<br>
<br>confirm("message") 显示含有给定消息的"Confirm"对话框(有一个OK按钮和一个Cancel按钮).如果用户单击OK返回true,否则返回false.
<br>
<br>prompt("message") 显示一个"prompt"对话框,要求用户根据显示消息给予相应输入.
<br>
<br>open("URL","name") 打开一个新窗口,给予一个指定的名字.
<br>
<br>close() 关闭当前窗口.
<br>
<br>
<br><strong>frame对象</strong>
<br>
<br>
<br>它是整个浏览器窗口的子窗口,除了status,defaultStatus,name属性外,它拥有window对象的全部属性.
<br>
<br>
<br><strong>location对象</strong>
<br>
<br>
<br>含有当前URL的信息.
<br>
<br>属性
<br>
<br>href 整个URL字符串.
<br>
<br>protocol 含有URL第一部分的字符串,如http:
<br>
<br>host 包含有URL中主机名:端口号部分的字符串.如//www.cenpok.net/server/
<br>
<br>hostname 包含URL中主机名的字符串.如http://www.cenpok.net
<br>
<br>port 包含URL中可能存在的端口号字符串.
<br>
<br>pathname URL中"/"以后的部分.如~list/index.htm
<br>
<br>hash "#"号(CGI参数)之后的字符串.
<br>
<br>search "?"号(CGI参数)之后的字符串.
<br>
<br>
<br><strong>document对象</strong>
<br>
<br>含有当前文档信息的对象.
<br>
<br>属性
<br>
<br>title 当前文档标题,如果未定义,则包含"Untitled".
<br>
<br>location 文档的全URL.
<br>
<br>lastModified 含有文档最后修改日期.
<br>
<br>referrer 调用者URL,即用户是从哪个URL链接到当前页面的.
<br>
<br>bgColor 背景色(#xxxxxx)
<br>
<br>fgColor 前景文本颜色.
<br>
<br>linkColor 超链接颜色.
<br>
<br>vlinkColor 访问过的超链颜色.
<br>
<br>alinkColor 激活链颜色(鼠标按住未放时).
<br>
<br>forms[] 文档中form对象的数组,按定义次序存储.
<br>
<br>forms.length 文档中的form对象数目.
<br>
<br>links[] 与文档中所有HREF链对应的数组对象,按次序定义存储.
<br>
<br>links.length 文档中HREF链的数目.
<br>
<br>anchors[] 锚(...)数组,按次序定义存储.
<br>
<br>anchors.length 文档中锚的数目.
<br>
<br>
<br><strong>方法</strong>
<br>
<br>write("string") 将字符串突出给当前窗口.(字符串可以含有HTML标记)
<br>
<br>writeln("string") 与write()类似,在结尾追加回车符,只在预定格式文本中(
<br>
<br>...
<br>或
<br>...
<br>)生效.
<br>
<br>clear() 清当前窗口.
<br>
<br>close() 关闭当前窗口.
<br>
<br>
<br><strong>form对象</strong>
<br>
<br>
<br><strong>属性</strong>
<br>
<br>name
<br>
<br>中的NAME属性的字符串值.
<br>
<br>method 中METHOD属性的类值,"0"="GET" ,"1"="POST" .
<br>
<br>action 中ACTION属性的字符串值.
<br>
<br>target 表格数据提交的目标,与标记中相应属性一致.
<br>
<br>elements[index] elements属性包含form中的各个元素.
<br>
<br>length 表格中的元素个数.
<br>
<br>
<br><strong>方法</strong>
<br>
<br>submit() 提交表格.
<br>
<br>事件处理器onSubmit() 用户单击一个定义好的按钮提交form时运行的代码.
<br>
<br>
<br><strong>text和textarea对象</strong>
<br>
<br>属性
<br>
<br>name NAME属性的字符串值.
<br>
<br>value 域内容的字符串值.
<br>
<br>defaultValue 域内容的初始字符串值.
<br>
<br>
<br>方法
<br>
<br>focus() 设置对象输入焦点.
<br>
<br>blur() 从对象上移走输入焦点.
<br>
<br>select() 选定对象的输入区域.
<br>
<br>
<br><strong>事件处理器</strong>
<br>
<br>onFocus 当输入焦点进入时执行.
<br>
<br>onBlur 当域失去焦点时执行.
<br>
<br>onSelect 当域中有部分文本被选定时执行.
<br>
<br>onChange 当域失去焦点且域值相对于onFocus执行有所改变时执行.
<br><img src ="http://www.blogjava.net/cgogg/aggbug/127803.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cgogg/" target="_blank">chenguo</a> 2007-07-03 12:15 <a href="http://www.blogjava.net/cgogg/articles/127803.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>XmlHttp实现无刷新三联动下拉框</title><link>http://www.blogjava.net/cgogg/articles/125331.html</link><dc:creator>chenguo</dc:creator><author>chenguo</author><pubDate>Wed, 20 Jun 2007 05:33:00 GMT</pubDate><guid>http://www.blogjava.net/cgogg/articles/125331.html</guid><wfw:comment>http://www.blogjava.net/cgogg/comments/125331.html</wfw:comment><comments>http://www.blogjava.net/cgogg/articles/125331.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cgogg/comments/commentRss/125331.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cgogg/services/trackbacks/125331.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: XmlHttp实现无刷新三联动下拉框1.html代码&lt;HTML&gt;&nbsp;&nbsp;&nbsp;&nbsp;&lt;HEAD&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;title&gt;XmlHttp实现无刷新三联动下拉框&lt;/title&gt;&nbsp;&nbsp;&nbsp;&nbsp;&...&nbsp;&nbsp;<a href='http://www.blogjava.net/cgogg/articles/125331.html'>阅读全文</a><img src ="http://www.blogjava.net/cgogg/aggbug/125331.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cgogg/" target="_blank">chenguo</a> 2007-06-20 13:33 <a href="http://www.blogjava.net/cgogg/articles/125331.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ajax.NET的几个示例代码</title><link>http://www.blogjava.net/cgogg/articles/125325.html</link><dc:creator>chenguo</dc:creator><author>chenguo</author><pubDate>Wed, 20 Jun 2007 05:27:00 GMT</pubDate><guid>http://www.blogjava.net/cgogg/articles/125325.html</guid><wfw:comment>http://www.blogjava.net/cgogg/comments/125325.html</wfw:comment><comments>http://www.blogjava.net/cgogg/articles/125325.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cgogg/comments/commentRss/125325.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cgogg/services/trackbacks/125325.html</trackback:ping><description><![CDATA[<div class="postText">
<img alt="" src="http://www.cnblogs.com/images/cnblogs_com/singlepine/Ajax.NET.JPG" border="0"><br><br>源代码下载<a href="http://singlepine.cnblogs.com/Files/singlepine/AJAXDemo.rar">/Files/singlepine/AJAXDemo.rar</a>
</div>
<br><img src ="http://www.blogjava.net/cgogg/aggbug/125325.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cgogg/" target="_blank">chenguo</a> 2007-06-20 13:27 <a href="http://www.blogjava.net/cgogg/articles/125325.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ajax使用初步</title><link>http://www.blogjava.net/cgogg/articles/125326.html</link><dc:creator>chenguo</dc:creator><author>chenguo</author><pubDate>Wed, 20 Jun 2007 05:27:00 GMT</pubDate><guid>http://www.blogjava.net/cgogg/articles/125326.html</guid><wfw:comment>http://www.blogjava.net/cgogg/comments/125326.html</wfw:comment><comments>http://www.blogjava.net/cgogg/articles/125326.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cgogg/comments/commentRss/125326.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cgogg/services/trackbacks/125326.html</trackback:ping><description><![CDATA[<div class="postTitle">
<a id="viewpost1_TitleUrl" href="http://www.cnblogs.com/singlepine/archive/2005/10/12/253393.html">Ajax使用初步</a>
</div>
<div class="postText">
<p>&nbsp;<font color="#000000" face="Times new roman" size="3">Ajax定义为&#8220;Asynchronous JavaScript + XML&#8221;的简称，也就是异步的JavaScript和XML处理。从原理上看，主要是Ajax可以通过调用HttpRequest实现与服务器的异步通讯，并最终在网页中实现丰富友好的用户界面<br>Ajax使用初步，配置步骤<br>1.把Ajax.dll copy到应用系统bin目录下，然后在工程引用中引用Ajax.dll，如果没有的话可以下载<a href="http://singlepine.cnblogs.com/Files/singlepine/Ajax.rar">/Files/singlepine/Ajax.rar</a><br>2.配置web.config，添加如下信息</font><br></p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&lt;httpHandlers&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&lt;add&nbsp;verb="POST,GET"&nbsp;path="ajax/*.ashx"&nbsp;type="Ajax.PageHandlerFactory,&nbsp;Ajax"&nbsp;/&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&lt;/httpHandlers&gt;</div>
<font color="#000000" face="Times new roman" size="3">3.假设应用系统叫Document，目录格式为Pages\AjaxTest<br>4.在Pages\AjaxTest下建立cs文件AjaxMethod.cs，添加如下方法</font><br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">//[Ajax.AjaxMethod]<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">[Ajax.AjaxMethod(Ajax.HttpSessionStateRequirement.Read)]<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">public&nbsp;static&nbsp;string&nbsp;GetNIVNumber(string&nbsp;str)<br><img id="Codehighlighter1_123_138_Open_Image" onclick="this.style.display='none'; codehighlighter1_123_138_open_text.style.display="'none';" codehighlighter1_123_138_closed_image.style.display="'inline';" codehighlighter1_123_138_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top"><img id="Codehighlighter1_123_138_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_123_138_closed_text.style.display="'none';" codehighlighter1_123_138_open_image.style.display="'inline';" codehighlighter1_123_138_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top"><img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;return&nbsp;str;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top">}</div>
<font color="#000000" face="Times new roman" size="3">5.在Pages\AjaxTest下建立页面AjaxForm.aspx</font><br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&lt;HTML&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&lt;HEAD&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&lt;title&gt;AjaxForm&lt;/title&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&lt;meta&nbsp;name="GENERATOR"&nbsp;Content="Microsoft&nbsp;Visual&nbsp;Studio&nbsp;.NET&nbsp;7.1"&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&lt;meta&nbsp;name="CODE_LANGUAGE"&nbsp;Content="C#"&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&lt;meta&nbsp;name="vs_defaultClientScript"&nbsp;content="JavaScript"&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&lt;meta&nbsp;name="vs_targetSchema"&nbsp;content="http://schemas.microsoft.com/intellisense/ie5"&gt;<br><img id="Codehighlighter1_333_620_Open_Image" onclick="this.style.display='none'; codehighlighter1_333_620_open_text.style.display="'none';" codehighlighter1_333_620_closed_image.style.display="'inline';" codehighlighter1_333_620_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top"><img id="Codehighlighter1_333_620_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_333_620_closed_text.style.display="'none';" codehighlighter1_333_620_open_image.style.display="'inline';" codehighlighter1_333_620_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top">&nbsp;&nbsp;&lt;script&nbsp;language="javascript"&gt;<img src="http://www.cnblogs.com/Images/dot.gif"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;function&nbsp;testAjax()<br><img id="Codehighlighter1_374_491_Open_Image" onclick="this.style.display='none'; codehighlighter1_374_491_open_text.style.display="'none';" codehighlighter1_374_491_closed_image.style.display="'inline';" codehighlighter1_374_491_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_374_491_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_374_491_closed_text.style.display="'none';" codehighlighter1_374_491_open_image.style.display="'inline';" codehighlighter1_374_491_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;<img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;var&nbsp;first=document.getElementById("txtfirst");<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;AjaxMethod.GetNIVNumber(first.value,callback_GetNIVNumber);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;}<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;function&nbsp;callback_GetNIVNumber(res)<br><img id="Codehighlighter1_533_617_Open_Image" onclick="this.style.display='none'; codehighlighter1_533_617_open_text.style.display="'none';" codehighlighter1_533_617_closed_image.style.display="'inline';" codehighlighter1_533_617_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_533_617_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_533_617_closed_text.style.display="'none';" codehighlighter1_533_617_open_image.style.display="'inline';" codehighlighter1_533_617_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;<img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;var&nbsp;obj=document.getElementById("txtsecond");&nbsp;&nbsp;&nbsp;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;obj.value=res.value;&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;}<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top">&nbsp;&nbsp;&lt;/script&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&lt;/HEAD&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&lt;body&nbsp;MS_POSITIONING="GridLayout"&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&lt;form&nbsp;id="Form1"&nbsp;method="post"&nbsp;runat="server"&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&lt;INPUT&nbsp;style="Z-INDEX:&nbsp;101;&nbsp;LEFT:&nbsp;208px;&nbsp;POSITION:&nbsp;absolute;&nbsp;TOP:&nbsp;40px"&nbsp;type="button"&nbsp;value="Button"<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;onclick="testAjax();"&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&lt;asp:TextBox&nbsp;id="txtfirst"&nbsp;style="Z-INDEX:&nbsp;102;&nbsp;LEFT:&nbsp;40px;&nbsp;POSITION:&nbsp;absolute;&nbsp;TOP:&nbsp;40px"&nbsp;runat="server"&gt;&lt;/asp:TextBox&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&lt;asp:TextBox&nbsp;id="txtsecond"&nbsp;style="Z-INDEX:&nbsp;103;&nbsp;LEFT:&nbsp;40px;&nbsp;POSITION:&nbsp;absolute;&nbsp;TOP:&nbsp;72px"&nbsp;runat="server"&gt;&lt;/asp:TextBox&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&lt;/form&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&lt;/body&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&lt;/HTML&gt;</div>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">protected&nbsp;System.Web.UI.WebControls.TextBox&nbsp;txtfirst;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">protected&nbsp;System.Web.UI.WebControls.TextBox&nbsp;txtsecond;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">private&nbsp;void&nbsp;Page_Load(object&nbsp;sender,&nbsp;System.EventArgs&nbsp;e)<br><img id="Codehighlighter1_167_314_Open_Image" onclick="this.style.display='none'; codehighlighter1_167_314_open_text.style.display="'none';" codehighlighter1_167_314_closed_image.style.display="'inline';" codehighlighter1_167_314_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top"><img id="Codehighlighter1_167_314_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_167_314_closed_text.style.display="'none';" codehighlighter1_167_314_open_image.style.display="'inline';" codehighlighter1_167_314_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top"><img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;//注册,其中Document.Pages.AjaxTest.AjaxMethod为AjaxMethod.cs方法所在的命名空间<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;Ajax.Utility.RegisterTypeForAjax(typeof(Document.Pages.AjaxTest.AjaxMethod));<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top">}</div>
<font color="#000000" face="Times new roman" size="3">然后运行就可以了，<br>实现效果：在第一个textbox中输入内容，点击button，就把内容显示到第二textbox中。这只是一个简单的示例，还可以修改调用方法，从数据库读取以及更复杂的操作</font>
</div>
<br><img src ="http://www.blogjava.net/cgogg/aggbug/125326.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cgogg/" target="_blank">chenguo</a> 2007-06-20 13:27 <a href="http://www.blogjava.net/cgogg/articles/125326.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ajax简单示例之改变下拉框动态生成表格</title><link>http://www.blogjava.net/cgogg/articles/125324.html</link><dc:creator>chenguo</dc:creator><author>chenguo</author><pubDate>Wed, 20 Jun 2007 05:26:00 GMT</pubDate><guid>http://www.blogjava.net/cgogg/articles/125324.html</guid><wfw:comment>http://www.blogjava.net/cgogg/comments/125324.html</wfw:comment><comments>http://www.blogjava.net/cgogg/articles/125324.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cgogg/comments/commentRss/125324.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cgogg/services/trackbacks/125324.html</trackback:ping><description><![CDATA[<div class="postTitle">
<a id="viewpost1_TitleUrl" href="http://www.cnblogs.com/singlepine/archive/2006/05/03/391292.html">Ajax简单示例之改变下拉框动态生成表格</a>
</div>
<div class="postText">
<img alt="" src="http://www.cnblogs.com/images/cnblogs_com/singlepine/ajaxgrid.JPG" border="0"><br><br>1.建立一个aspx页面，html代码<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&lt;html&nbsp;xmlns="http://www.w3.org/1999/xhtml"&nbsp;&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&lt;head&nbsp;runat="server"&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&lt;title&gt;Untitled&nbsp;Page&lt;/title&gt;<br><img id="Codehighlighter1_135_1222_Open_Image" onclick="this.style.display='none'; codehighlighter1_135_1222_open_text.style.display="'none';" codehighlighter1_135_1222_closed_image.style.display="'inline';" codehighlighter1_135_1222_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top"><img id="Codehighlighter1_135_1222_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_135_1222_closed_text.style.display="'none';" codehighlighter1_135_1222_open_image.style.display="'inline';" codehighlighter1_135_1222_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&lt;script&nbsp;type="text/javascript"&gt;<img src="http://www.cnblogs.com/Images/dot.gif"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;xmlHttp;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;createXMLHttpRequest()&nbsp;<br><img id="Codehighlighter1_207_472_Open_Image" onclick="this.style.display='none'; codehighlighter1_207_472_open_text.style.display="'none';" codehighlighter1_207_472_closed_image.style.display="'inline';" codehighlighter1_207_472_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_207_472_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_207_472_closed_text.style.display="'none';" codehighlighter1_207_472_open_image.style.display="'inline';" codehighlighter1_207_472_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(window.ActiveXObject)&nbsp;<br><img id="Codehighlighter1_260_340_Open_Image" onclick="this.style.display='none'; codehighlighter1_260_340_open_text.style.display="'none';" codehighlighter1_260_340_closed_image.style.display="'inline';" codehighlighter1_260_340_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_260_340_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_260_340_closed_text.style.display="'none';" codehighlighter1_260_340_open_image.style.display="'inline';" codehighlighter1_260_340_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlHttp&nbsp;=&nbsp;new&nbsp;ActiveXObject("Microsoft.XMLHTTP");<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;if&nbsp;(window.XMLHttpRequest)&nbsp;<br><img id="Codehighlighter1_400_462_Open_Image" onclick="this.style.display='none'; codehighlighter1_400_462_open_text.style.display="'none';" codehighlighter1_400_462_closed_image.style.display="'inline';" codehighlighter1_400_462_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_400_462_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_400_462_closed_text.style.display="'none';" codehighlighter1_400_462_open_image.style.display="'inline';" codehighlighter1_400_462_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlHttp&nbsp;=&nbsp;new&nbsp;XMLHttpRequest();<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;startRequest()&nbsp;<br><img id="Codehighlighter1_528_842_Open_Image" onclick="this.style.display='none'; codehighlighter1_528_842_open_text.style.display="'none';" codehighlighter1_528_842_closed_image.style.display="'inline';" codehighlighter1_528_842_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_528_842_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_528_842_closed_text.style.display="'none';" codehighlighter1_528_842_open_image.style.display="'inline';" codehighlighter1_528_842_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//debugger;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;ProvinceID=document.getElementById("DropDownList1");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;createXMLHttpRequest();<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlHttp.onreadystatechange&nbsp;=&nbsp;handleStateChange;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlHttp.open("GET",&nbsp;"?ProvinceID="+ProvinceID.value,&nbsp;true);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlHttp.send(null);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;handleStateChange()&nbsp;<br><img id="Codehighlighter1_903_1213_Open_Image" onclick="this.style.display='none'; codehighlighter1_903_1213_open_text.style.display="'none';" codehighlighter1_903_1213_closed_image.style.display="'inline';" codehighlighter1_903_1213_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_903_1213_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_903_1213_closed_text.style.display="'none';" codehighlighter1_903_1213_open_image.style.display="'inline';" codehighlighter1_903_1213_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(xmlHttp.readyState&nbsp;==&nbsp;4)&nbsp;//0(未初始化);1(正在装载);2&nbsp;(装载完毕);3&nbsp;(交互中);4&nbsp;(完成)&nbsp;<br><img id="Codehighlighter1_1000_1203_Open_Image" onclick="this.style.display='none'; codehighlighter1_1000_1203_open_text.style.display="'none';" codehighlighter1_1000_1203_closed_image.style.display="'inline';" codehighlighter1_1000_1203_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_1000_1203_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_1000_1203_closed_text.style.display="'none';" codehighlighter1_1000_1203_open_image.style.display="'inline';" codehighlighter1_1000_1203_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(xmlHttp.status&nbsp;==&nbsp;200)&nbsp;//200(OK);404(not&nbsp;found)<br><img id="Codehighlighter1_1085_1189_Open_Image" onclick="this.style.display='none'; codehighlighter1_1085_1189_open_text.style.display="'none';" codehighlighter1_1085_1189_closed_image.style.display="'inline';" codehighlighter1_1085_1189_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_1085_1189_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_1085_1189_closed_text.style.display="'none';" codehighlighter1_1085_1189_open_image.style.display="'inline';" codehighlighter1_1085_1189_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.getElementById("gridiv").innerHTML=xmlHttp.responseText;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/script&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&lt;/head&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&lt;body&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&lt;form&nbsp;id="form1"&nbsp;runat="server"&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&lt;div&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;asp:DropDownList&nbsp;ID="DropDownList1"&nbsp;runat="server"&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/asp:DropDownList&gt;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&lt;/div&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&lt;div&nbsp;id&nbsp;="gridiv"&gt;&lt;/div&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&lt;/form&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&lt;/body&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&lt;/html&gt;</div>
2.cs代码<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">using&nbsp;System.Data.SqlClient;</div>
<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">protected&nbsp;void&nbsp;Page_Load(object&nbsp;sender,&nbsp;EventArgs&nbsp;e)<br><img id="Codehighlighter1_57_337_Open_Image" onclick="this.style.display='none'; codehighlighter1_57_337_open_text.style.display="'none';" codehighlighter1_57_337_closed_image.style.display="'inline';" codehighlighter1_57_337_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top"><img id="Codehighlighter1_57_337_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_57_337_closed_text.style.display="'none';" codehighlighter1_57_337_open_image.style.display="'inline';" codehighlighter1_57_337_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!Page.IsPostBack)<br><img id="Codehighlighter1_97_331_Open_Image" onclick="this.style.display='none'; codehighlighter1_97_331_open_text.style.display="'none';" codehighlighter1_97_331_closed_image.style.display="'inline';" codehighlighter1_97_331_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_97_331_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_97_331_closed_text.style.display="'none';" codehighlighter1_97_331_open_image.style.display="'inline';" codehighlighter1_97_331_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.DropDownList1.Attributes.Add("onchange",&nbsp;"return&nbsp;startRequest();");<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ListProvince();<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(ProvinceID&nbsp;!=&nbsp;"")<br><img id="Codehighlighter1_258_321_Open_Image" onclick="this.style.display='none'; codehighlighter1_258_321_open_text.style.display="'none';" codehighlighter1_258_321_closed_image.style.display="'inline';" codehighlighter1_258_321_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_258_321_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_258_321_closed_text.style.display="'none';" codehighlighter1_258_321_open_image.style.display="'inline';" codehighlighter1_258_321_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetCityByProvinceID(ProvinceID);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"><br><img id="Codehighlighter1_344_683_Closed_Image" onclick="this.style.display='none'; codehighlighter1_344_683_closed_text.style.display="'none';" codehighlighter1_344_683_open_image.style.display="'inline';" codehighlighter1_344_683_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top"><img id="Codehighlighter1_344_683_Open_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_344_683_open_text.style.display="'none';" codehighlighter1_344_683_closed_image.style.display="'inline';" codehighlighter1_344_683_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;property#region&nbsp;property<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;string&nbsp;ProvinceID<br><img id="Codehighlighter1_395_668_Open_Image" onclick="this.style.display='none'; codehighlighter1_395_668_open_text.style.display="'none';" codehighlighter1_395_668_closed_image.style.display="'inline';" codehighlighter1_395_668_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_395_668_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_395_668_closed_text.style.display="'none';" codehighlighter1_395_668_open_image.style.display="'inline';" codehighlighter1_395_668_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get<br><img id="Codehighlighter1_417_662_Open_Image" onclick="this.style.display='none'; codehighlighter1_417_662_open_text.style.display="'none';" codehighlighter1_417_662_closed_image.style.display="'inline';" codehighlighter1_417_662_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_417_662_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_417_662_closed_text.style.display="'none';" codehighlighter1_417_662_open_image.style.display="'inline';" codehighlighter1_417_662_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(Request["ProvinceID"]&nbsp;!=&nbsp;null&nbsp;&amp;&amp;&nbsp;Request["ProvinceID"].ToString()&nbsp;!=&nbsp;"")<br><img id="Codehighlighter1_520_580_Open_Image" onclick="this.style.display='none'; codehighlighter1_520_580_open_text.style.display="'none';" codehighlighter1_520_580_closed_image.style.display="'inline';" codehighlighter1_520_580_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_520_580_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_520_580_closed_text.style.display="'none';" codehighlighter1_520_580_open_image.style.display="'inline';" codehighlighter1_520_580_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;Request["ProvinceID"];<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br><img id="Codehighlighter1_611_652_Open_Image" onclick="this.style.display='none'; codehighlighter1_611_652_open_text.style.display="'none';" codehighlighter1_611_652_closed_image.style.display="'inline';" codehighlighter1_611_652_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_611_652_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_611_652_closed_text.style.display="'none';" codehighlighter1_611_652_open_image.style.display="'inline';" codehighlighter1_611_652_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;"";<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;#endregion<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"><br><img id="Codehighlighter1_690_1019_Closed_Image" onclick="this.style.display='none'; codehighlighter1_690_1019_closed_text.style.display="'none';" codehighlighter1_690_1019_open_image.style.display="'inline';" codehighlighter1_690_1019_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top"><img id="Codehighlighter1_690_1019_Open_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_690_1019_open_text.style.display="'none';" codehighlighter1_690_1019_closed_image.style.display="'inline';" codehighlighter1_690_1019_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;GetDataSet#region&nbsp;GetDataSet<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;DataSet&nbsp;GetDataSet(string&nbsp;sql)<br><img id="Codehighlighter1_756_1004_Open_Image" onclick="this.style.display='none'; codehighlighter1_756_1004_open_text.style.display="'none';" codehighlighter1_756_1004_closed_image.style.display="'inline';" codehighlighter1_756_1004_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_756_1004_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_756_1004_closed_text.style.display="'none';" codehighlighter1_756_1004_open_image.style.display="'inline';" codehighlighter1_756_1004_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;constring=System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"];<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SqlDataAdapter&nbsp;&nbsp;&nbsp;&nbsp;sda&nbsp;=new&nbsp;SqlDataAdapter(sql,constring);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataSet&nbsp;ds=new&nbsp;DataSet();<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sda.Fill(ds);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;ds;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;#endregion<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"><br><img id="Codehighlighter1_1026_2399_Closed_Image" onclick="this.style.display='none'; codehighlighter1_1026_2399_closed_text.style.display="'none';" codehighlighter1_1026_2399_open_image.style.display="'inline';" codehighlighter1_1026_2399_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top"><img id="Codehighlighter1_1026_2399_Open_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_1026_2399_open_text.style.display="'none';" codehighlighter1_1026_2399_closed_image.style.display="'inline';" codehighlighter1_1026_2399_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;GetCityByProvinceID#region&nbsp;GetCityByProvinceID<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;void&nbsp;GetCityByProvinceID(string&nbsp;ProvinceID)<br><img id="Codehighlighter1_1114_2384_Open_Image" onclick="this.style.display='none'; codehighlighter1_1114_2384_open_text.style.display="'none';" codehighlighter1_1114_2384_closed_image.style.display="'inline';" codehighlighter1_1114_2384_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_1114_2384_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_1114_2384_closed_text.style.display="'none';" codehighlighter1_1114_2384_open_image.style.display="'inline';" codehighlighter1_1114_2384_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;connStr&nbsp;=&nbsp;ConfigurationSettings.AppSettings["ConnectionString"];<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SqlConnection&nbsp;conn&nbsp;=&nbsp;new&nbsp;SqlConnection(connStr);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;sql&nbsp;=&nbsp;"select&nbsp;*&nbsp;from&nbsp;city&nbsp;where&nbsp;father='"&nbsp;+&nbsp;ProvinceID&nbsp;+&nbsp;"'";<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SqlCommand&nbsp;cmd&nbsp;=&nbsp;new&nbsp;SqlCommand(sql,&nbsp;conn);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;conn.Open();<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SqlDataReader&nbsp;dr&nbsp;=&nbsp;cmd.ExecuteReader();<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;s&nbsp;=&nbsp;@"&lt;table&nbsp;cellspacing='0'&nbsp;cellpadding='4'&nbsp;border='0'&nbsp;id='GridView1'&nbsp;style='color:#333333;border-collapse:collapse;'&gt;";<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s+="&lt;tr&nbsp;style='color:White;background-color:#990000;font-weight:bold;'&gt;";<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s+="&lt;th&nbsp;scope='col'&gt;流水号&lt;/th&gt;&lt;th&nbsp;scope='col'&gt;代号&lt;/th&gt;&lt;th&nbsp;scope='col'&gt;城市&lt;/th&gt;&lt;/tr&gt;";<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;m&nbsp;=&nbsp;0;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;(dr.Read())<br><img id="Codehighlighter1_1803_2253_Open_Image" onclick="this.style.display='none'; codehighlighter1_1803_2253_open_text.style.display="'none';" codehighlighter1_1803_2253_closed_image.style.display="'inline';" codehighlighter1_1803_2253_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_1803_2253_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_1803_2253_closed_text.style.display="'none';" codehighlighter1_1803_2253_open_image.style.display="'inline';" codehighlighter1_1803_2253_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(m&nbsp;%&nbsp;2&nbsp;==&nbsp;0)<br><img id="Codehighlighter1_1845_1936_Open_Image" onclick="this.style.display='none'; codehighlighter1_1845_1936_open_text.style.display="'none';" codehighlighter1_1845_1936_closed_image.style.display="'inline';" codehighlighter1_1845_1936_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_1845_1936_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_1845_1936_closed_text.style.display="'none';" codehighlighter1_1845_1936_open_image.style.display="'inline';" codehighlighter1_1845_1936_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s&nbsp;+=&nbsp;"&lt;tr&nbsp;style='color:#333333;background-color:#FFFBD6;'&gt;";<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br><img id="Codehighlighter1_1967_2056_Open_Image" onclick="this.style.display='none'; codehighlighter1_1967_2056_open_text.style.display="'none';" codehighlighter1_1967_2056_closed_image.style.display="'inline';" codehighlighter1_1967_2056_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_1967_2056_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_1967_2056_closed_text.style.display="'none';" codehighlighter1_1967_2056_open_image.style.display="'inline';" codehighlighter1_1967_2056_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s&nbsp;+=&nbsp;"&lt;tr&nbsp;style='color:#333333;background-color:White;'&gt;";<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m++;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s&nbsp;+=&nbsp;"&lt;td&gt;"&nbsp;+&nbsp;dr["id"]&nbsp;+&nbsp;"&lt;/td&gt;";<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s&nbsp;+=&nbsp;"&lt;td&gt;"&nbsp;+&nbsp;dr["cityID"]&nbsp;+&nbsp;"&lt;/td&gt;";<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s&nbsp;+=&nbsp;"&lt;td&gt;"&nbsp;+&nbsp;dr["city"]&nbsp;+&nbsp;"&lt;/td&gt;";<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s&nbsp;+=&nbsp;"&lt;/tr&gt;";<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s+="&lt;/table&gt;";<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dr.Close();<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;conn.Close();<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.Response.Write(s);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.Response.End();<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;#endregion<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"><br><img id="Codehighlighter1_2406_2745_Closed_Image" onclick="this.style.display='none'; codehighlighter1_2406_2745_closed_text.style.display="'none';" codehighlighter1_2406_2745_open_image.style.display="'inline';" codehighlighter1_2406_2745_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top"><img id="Codehighlighter1_2406_2745_Open_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_2406_2745_open_text.style.display="'none';" codehighlighter1_2406_2745_closed_image.style.display="'inline';" codehighlighter1_2406_2745_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;ListProvince#region&nbsp;ListProvince<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;void&nbsp;ListProvince()<br><img id="Codehighlighter1_2463_2730_Open_Image" onclick="this.style.display='none'; codehighlighter1_2463_2730_open_text.style.display="'none';" codehighlighter1_2463_2730_closed_image.style.display="'inline';" codehighlighter1_2463_2730_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_2463_2730_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_2463_2730_closed_text.style.display="'none';" codehighlighter1_2463_2730_open_image.style.display="'inline';" codehighlighter1_2463_2730_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;sql&nbsp;=&nbsp;"select&nbsp;*&nbsp;from&nbsp;province";<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataSet&nbsp;ds&nbsp;=&nbsp;GetDataSet(sql);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DropDownList1.DataSource&nbsp;=&nbsp;ds;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DropDownList1.DataTextField&nbsp;=&nbsp;"province";<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DropDownList1.DataValueField&nbsp;=&nbsp;"provinceID";<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DropDownList1.DataBind();<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;#endregion</div>
3.示例数据库下载<a href="http://www.cnblogs.com/Files/singlepine/area1.rar"><font color="#002c99">area1.rar</font></a>
</div>
<br><img src ="http://www.blogjava.net/cgogg/aggbug/125324.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cgogg/" target="_blank">chenguo</a> 2007-06-20 13:26 <a href="http://www.blogjava.net/cgogg/articles/125324.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ajax实现在textbox中输入内容，动态从数据库中模糊查询显示到下拉框中</title><link>http://www.blogjava.net/cgogg/articles/125322.html</link><dc:creator>chenguo</dc:creator><author>chenguo</author><pubDate>Wed, 20 Jun 2007 05:25:00 GMT</pubDate><guid>http://www.blogjava.net/cgogg/articles/125322.html</guid><wfw:comment>http://www.blogjava.net/cgogg/comments/125322.html</wfw:comment><comments>http://www.blogjava.net/cgogg/articles/125322.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cgogg/comments/commentRss/125322.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cgogg/services/trackbacks/125322.html</trackback:ping><description><![CDATA[<div class="postTitle">
<a id="viewpost1_TitleUrl" href="http://www.cnblogs.com/singlepine/archive/2006/05/21/405566.html">Ajax实现在textbox中输入内容，动态从数据库中模糊查询显示到下拉框中</a><br>http://www.cnblogs.com/singlepine/archive/2006/05/21/405566.html
<br>
</div>
<p><img alt="" src="http://www.cnblogs.com/images/cnblogs_com/singlepine/ajaxtextbox.JPG" border="0"></p>
<p>功能：在textbox中输入内容，动态从数据库模糊查询显示到下拉框中，以供选择<br><br>1.建立一aspx页面，html代码 </p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&lt;HTML&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&lt;HEAD&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;title&gt;WebForm1&lt;/title&gt;<br><img id="Codehighlighter1_73_1875_Open_Image" onclick="this.style.display='none'; codehighlighter1_73_1875_open_text.style.display="'none';" codehighlighter1_73_1875_closed_image.style.display="'inline';" codehighlighter1_73_1875_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top"><img id="Codehighlighter1_73_1875_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_73_1875_closed_text.style.display="'none';" codehighlighter1_73_1875_open_image.style.display="'inline';" codehighlighter1_73_1875_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;SCRIPT&nbsp;language="javascript"&gt;<img src="http://www.cnblogs.com/Images/dot.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//城市------------------------------<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;cityResult()&nbsp;<br><img id="Codehighlighter1_180_332_Open_Image" onclick="this.style.display='none'; codehighlighter1_180_332_open_text.style.display="'none';" codehighlighter1_180_332_closed_image.style.display="'inline';" codehighlighter1_180_332_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_180_332_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_180_332_closed_text.style.display="'none';" codehighlighter1_180_332_open_image.style.display="'inline';" codehighlighter1_180_332_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cnblogs.com/Images/dot.gif">{&nbsp;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;city=document.getElementById("TextBox1");<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WebForm1.GetCityList(city.value,get_city_Result_CallBack);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;get_city_Result_CallBack(response)<br><img id="Codehighlighter1_415_1424_Open_Image" onclick="this.style.display='none'; codehighlighter1_415_1424_open_text.style.display="'none';" codehighlighter1_415_1424_closed_image.style.display="'inline';" codehighlighter1_415_1424_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_415_1424_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_415_1424_closed_text.style.display="'none';" codehighlighter1_415_1424_open_image.style.display="'inline';" codehighlighter1_415_1424_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(response.value&nbsp;!=&nbsp;null)<br><img id="Codehighlighter1_477_1234_Open_Image" onclick="this.style.display='none'; codehighlighter1_477_1234_open_text.style.display="'none';" codehighlighter1_477_1234_closed_image.style.display="'inline';" codehighlighter1_477_1234_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_477_1234_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_477_1234_closed_text.style.display="'none';" codehighlighter1_477_1234_open_image.style.display="'inline';" codehighlighter1_477_1234_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cnblogs.com/Images/dot.gif">{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//debugger;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.getElementById("DropDownList1").style.display="block";<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.getElementById("DropDownList1").length=0;　　　　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">　　　　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;ds&nbsp;=&nbsp;response.value;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(ds&nbsp;!=&nbsp;null&nbsp;&amp;&amp;&nbsp;typeof(ds)&nbsp;==&nbsp;"object"&nbsp;&amp;&amp;&nbsp;ds.Tables&nbsp;!=&nbsp;null)<br><img id="Codehighlighter1_845_1216_Open_Image" onclick="this.style.display='none'; codehighlighter1_845_1216_open_text.style.display="'none';" codehighlighter1_845_1216_closed_image.style.display="'inline';" codehighlighter1_845_1216_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_845_1216_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_845_1216_closed_text.style.display="'none';" codehighlighter1_845_1216_open_image.style.display="'inline';" codehighlighter1_845_1216_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cnblogs.com/Images/dot.gif">{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(var&nbsp;i=0;&nbsp;i&lt;ds.Tables[0].Rows.length;&nbsp;i++)<br><img id="Codehighlighter1_957_1194_Open_Image" onclick="this.style.display='none'; codehighlighter1_957_1194_open_text.style.display="'none';" codehighlighter1_957_1194_closed_image.style.display="'inline';" codehighlighter1_957_1194_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_957_1194_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_957_1194_closed_text.style.display="'none';" codehighlighter1_957_1194_open_image.style.display="'inline';" codehighlighter1_957_1194_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">　　　　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">　　　　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;name=ds.Tables[0].Rows[i].city;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">　　　　　　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;id=ds.Tables[0].Rows[i].cityID;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">　　　　　　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.getElementById("DropDownList1").options.add(new&nbsp;Option(name,id));<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">　　　　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br><img id="Codehighlighter1_1273_1374_Open_Image" onclick="this.style.display='none'; codehighlighter1_1273_1374_open_text.style.display="'none';" codehighlighter1_1273_1374_closed_image.style.display="'inline';" codehighlighter1_1273_1374_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_1273_1374_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_1273_1374_closed_text.style.display="'none';" codehighlighter1_1273_1374_open_image.style.display="'inline';" codehighlighter1_1273_1374_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.getElementById("DropDownList1").style.display="none";<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;getData()<br><img id="Codehighlighter1_1481_1872_Open_Image" onclick="this.style.display='none'; codehighlighter1_1481_1872_open_text.style.display="'none';" codehighlighter1_1481_1872_closed_image.style.display="'inline';" codehighlighter1_1481_1872_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_1481_1872_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_1481_1872_closed_text.style.display="'none';" codehighlighter1_1481_1872_open_image.style.display="'inline';" codehighlighter1_1481_1872_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;province=document.getElementById("DropDownList1");<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;pindex&nbsp;=&nbsp;province.selectedIndex;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;pValue&nbsp;=&nbsp;province.options[pindex].value;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;pText&nbsp;&nbsp;=&nbsp;province.options[pindex].text;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.getElementById("&lt;%=TextBox1.ClientID%&gt;").innerText=pText;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/SCRIPT&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&lt;/HEAD&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&lt;body&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;form&nbsp;id="Form1"&nbsp;method="post"&nbsp;runat="server"&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;asp:TextBox&nbsp;ID="TextBox1"&nbsp;runat="server"&gt;&lt;/asp:TextBox&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;br&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;asp:DropDownList&nbsp;ID="DropDownList1"&nbsp;runat="server"&nbsp;Width="192px"&nbsp;style="display:none"&gt;&lt;/asp:DropDownList&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/form&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&lt;/body&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&lt;/HTML&gt;</div>
2.cs代码<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">using&nbsp;System;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">using&nbsp;System.Collections;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">using&nbsp;System.ComponentModel;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">using&nbsp;System.Data;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">using&nbsp;System.Drawing;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">using&nbsp;System.Web;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">using&nbsp;System.Web.SessionState;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">using&nbsp;System.Web.UI;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">using&nbsp;System.Web.UI.WebControls;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">using&nbsp;System.Web.UI.HtmlControls;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">using&nbsp;System.Data.SqlClient;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">namespace&nbsp;ajaxselect<br><img id="Codehighlighter1_297_1903_Open_Image" onclick="this.style.display='none'; codehighlighter1_297_1903_open_text.style.display="'none';" codehighlighter1_297_1903_closed_image.style.display="'inline';" codehighlighter1_297_1903_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top"><img id="Codehighlighter1_297_1903_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_297_1903_closed_text.style.display="'none';" codehighlighter1_297_1903_open_image.style.display="'inline';" codehighlighter1_297_1903_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top"><img src="http://www.cnblogs.com/Images/dot.gif">{<br><img id="Codehighlighter1_300_368_Open_Image" onclick="this.style.display='none'; codehighlighter1_300_368_open_text.style.display="'none';" codehighlighter1_300_368_closed_image.style.display="'inline';" codehighlighter1_300_368_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_300_368_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_300_368_closed_text.style.display="'none';" codehighlighter1_300_368_open_image.style.display="'inline';" codehighlighter1_300_368_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;/**////&nbsp;&lt;summary&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;Summary&nbsp;description&nbsp;for&nbsp;WebForm1.<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;/summary&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;class&nbsp;WebForm1&nbsp;:&nbsp;System.Web.UI.Page<br><img id="Codehighlighter1_414_1901_Open_Image" onclick="this.style.display='none'; codehighlighter1_414_1901_open_text.style.display="'none';" codehighlighter1_414_1901_closed_image.style.display="'inline';" codehighlighter1_414_1901_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_414_1901_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_414_1901_closed_text.style.display="'none';" codehighlighter1_414_1901_open_image.style.display="'inline';" codehighlighter1_414_1901_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;protected&nbsp;System.Web.UI.WebControls.TextBox&nbsp;TextBox1;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;protected&nbsp;System.Web.UI.WebControls.DropDownList&nbsp;DropDownList1;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;void&nbsp;Page_Load(object&nbsp;sender,&nbsp;System.EventArgs&nbsp;e)<br><img id="Codehighlighter1_602_823_Open_Image" onclick="this.style.display='none'; codehighlighter1_602_823_open_text.style.display="'none';" codehighlighter1_602_823_closed_image.style.display="'inline';" codehighlighter1_602_823_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_602_823_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_602_823_closed_text.style.display="'none';" codehighlighter1_602_823_open_image.style.display="'inline';" codehighlighter1_602_823_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ajax.Utility.RegisterTypeForAjax(typeof(WebForm1));<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!Page.IsPostBack)<br><img id="Codehighlighter1_687_819_Open_Image" onclick="this.style.display='none'; codehighlighter1_687_819_open_text.style.display="'none';" codehighlighter1_687_819_closed_image.style.display="'inline';" codehighlighter1_687_819_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_687_819_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_687_819_closed_text.style.display="'none';" codehighlighter1_687_819_open_image.style.display="'inline';" codehighlighter1_687_819_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.TextBox1.Attributes.Add("onchange",&nbsp;"cityResult();");<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.DropDownList1.Attributes.Add("onclick",&nbsp;"getData();");<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"><br><img id="Codehighlighter1_828_1320_Closed_Image" onclick="this.style.display='none'; codehighlighter1_828_1320_closed_text.style.display="'none';" codehighlighter1_828_1320_open_image.style.display="'inline';" codehighlighter1_828_1320_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"><img id="Codehighlighter1_828_1320_Open_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_828_1320_open_text.style.display="'none';" codehighlighter1_828_1320_closed_image.style.display="'inline';" codehighlighter1_828_1320_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Web&nbsp;Form&nbsp;Designer&nbsp;generated&nbsp;code#region&nbsp;Web&nbsp;Form&nbsp;Designer&nbsp;generated&nbsp;code<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;override&nbsp;protected&nbsp;void&nbsp;OnInit(EventArgs&nbsp;e)<br><img id="Codehighlighter1_917_1049_Open_Image" onclick="this.style.display='none'; codehighlighter1_917_1049_open_text.style.display="'none';" codehighlighter1_917_1049_closed_image.style.display="'inline';" codehighlighter1_917_1049_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_917_1049_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_917_1049_closed_text.style.display="'none';" codehighlighter1_917_1049_open_image.style.display="'inline';" codehighlighter1_917_1049_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;CODEGEN:&nbsp;This&nbsp;call&nbsp;is&nbsp;required&nbsp;by&nbsp;the&nbsp;ASP.NET&nbsp;Web&nbsp;Form&nbsp;Designer.<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InitializeComponent();<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;base.OnInit(e);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img id="Codehighlighter1_1056_1201_Open_Image" onclick="this.style.display='none'; codehighlighter1_1056_1201_open_text.style.display="'none';" codehighlighter1_1056_1201_closed_image.style.display="'inline';" codehighlighter1_1056_1201_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_1056_1201_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_1056_1201_closed_text.style.display="'none';" codehighlighter1_1056_1201_open_image.style.display="'inline';" codehighlighter1_1056_1201_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/**////&nbsp;&lt;summary&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;Required&nbsp;method&nbsp;for&nbsp;Designer&nbsp;support&nbsp;-&nbsp;do&nbsp;not&nbsp;modify<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;the&nbsp;contents&nbsp;of&nbsp;this&nbsp;method&nbsp;with&nbsp;the&nbsp;code&nbsp;editor.<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;/summary&gt;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;void&nbsp;InitializeComponent()<br><img id="Codehighlighter1_1241_1307_Open_Image" onclick="this.style.display='none'; codehighlighter1_1241_1307_open_text.style.display="'none';" codehighlighter1_1241_1307_closed_image.style.display="'inline';" codehighlighter1_1241_1307_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_1241_1307_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_1241_1307_closed_text.style.display="'none';" codehighlighter1_1241_1307_open_image.style.display="'inline';" codehighlighter1_1241_1307_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cnblogs.com/Images/dot.gif">{&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.Load&nbsp;+=&nbsp;new&nbsp;System.EventHandler(this.Page_Load);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#endregion<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"><br><img id="Codehighlighter1_1325_1574_Closed_Image" onclick="this.style.display='none'; codehighlighter1_1325_1574_closed_text.style.display="'none';" codehighlighter1_1325_1574_open_image.style.display="'inline';" codehighlighter1_1325_1574_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"><img id="Codehighlighter1_1325_1574_Open_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_1325_1574_open_text.style.display="'none';" codehighlighter1_1325_1574_closed_image.style.display="'inline';" codehighlighter1_1325_1574_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetCityList#region&nbsp;GetCityList<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[Ajax.AjaxMethod(Ajax.HttpSessionStateRequirement.Read)]<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;DataSet&nbsp;GetCityList(int&nbsp;provinceid)<br><img id="Codehighlighter1_1451_1561_Open_Image" onclick="this.style.display='none'; codehighlighter1_1451_1561_open_text.style.display="'none';" codehighlighter1_1451_1561_closed_image.style.display="'inline';" codehighlighter1_1451_1561_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_1451_1561_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_1451_1561_closed_text.style.display="'none';" codehighlighter1_1451_1561_open_image.style.display="'inline';" codehighlighter1_1451_1561_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;sql&nbsp;=&nbsp;"select&nbsp;*&nbsp;from&nbsp;city&nbsp;where&nbsp;father&nbsp;like&nbsp;'%"&nbsp;+&nbsp;provinceid&nbsp;+&nbsp;"%'";<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;GetDataSet(sql);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#endregion<br><img id="Codehighlighter1_1578_1897_Closed_Image" onclick="this.style.display='none'; codehighlighter1_1578_1897_closed_text.style.display="'none';" codehighlighter1_1578_1897_open_image.style.display="'inline';" codehighlighter1_1578_1897_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"><img id="Codehighlighter1_1578_1897_Open_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_1578_1897_open_text.style.display="'none';" codehighlighter1_1578_1897_closed_image.style.display="'inline';" codehighlighter1_1578_1897_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetDataSet#region&nbsp;GetDataSet<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;DataSet&nbsp;GetDataSet(string&nbsp;sql)<br><img id="Codehighlighter1_1646_1884_Open_Image" onclick="this.style.display='none'; codehighlighter1_1646_1884_open_text.style.display="'none';" codehighlighter1_1646_1884_closed_image.style.display="'inline';" codehighlighter1_1646_1884_closed_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_1646_1884_Closed_Image" style="display: none;" onclick="this.style.display='none'; codehighlighter1_1646_1884_closed_text.style.display="'none';" codehighlighter1_1646_1884_open_image.style.display="'inline';" codehighlighter1_1646_1884_open_text.style.display="'inline';"" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cnblogs.com/Images/dot.gif">{<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;ConnectionString&nbsp;=&nbsp;System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"];<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SqlDataAdapter&nbsp;sda&nbsp;=&nbsp;new&nbsp;SqlDataAdapter(sql,&nbsp;ConnectionString);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataSet&nbsp;ds&nbsp;=&nbsp;new&nbsp;DataSet();<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sda.Fill(ds);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;ds;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#endregion<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top">}</div>
3.<a href="http://singlepine.cnblogs.com/Files/singlepine/ajaxselect.rar"><font color="#000000">源代码下载&nbsp;</font>http://singlepine.cnblogs.com/Files/singlepine/ajaxselect.rar
&nbsp;</a>&nbsp;<br>4.数据库脚本<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">CREATE&nbsp;TABLE&nbsp;[dbo].[city](<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;[id]&nbsp;[int]&nbsp;NOT&nbsp;NULL,<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;[cityID]&nbsp;[nvarchar](6)&nbsp;COLLATE&nbsp;Chinese_PRC_CI_AS&nbsp;NULL,<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;[city]&nbsp;[nvarchar](50)&nbsp;COLLATE&nbsp;Chinese_PRC_CI_AS&nbsp;NULL,<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;[father]&nbsp;[nvarchar](6)&nbsp;COLLATE&nbsp;Chinese_PRC_CI_AS&nbsp;NULL,<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;CONSTRAINT&nbsp;[PK_city]&nbsp;PRIMARY&nbsp;KEY&nbsp;CLUSTERED&nbsp;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">(<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;[id]&nbsp;ASC<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">)WITH&nbsp;(IGNORE_DUP_KEY&nbsp;=&nbsp;OFF)&nbsp;ON&nbsp;[PRIMARY]<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">)&nbsp;ON&nbsp;[PRIMARY]</div>
<br><img src ="http://www.blogjava.net/cgogg/aggbug/125322.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cgogg/" target="_blank">chenguo</a> 2007-06-20 13:25 <a href="http://www.blogjava.net/cgogg/articles/125322.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ajax实现无刷新树</title><link>http://www.blogjava.net/cgogg/articles/125319.html</link><dc:creator>chenguo</dc:creator><author>chenguo</author><pubDate>Wed, 20 Jun 2007 05:22:00 GMT</pubDate><guid>http://www.blogjava.net/cgogg/articles/125319.html</guid><wfw:comment>http://www.blogjava.net/cgogg/comments/125319.html</wfw:comment><comments>http://www.blogjava.net/cgogg/articles/125319.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cgogg/comments/commentRss/125319.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cgogg/services/trackbacks/125319.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Ajax实现无刷新树1.建立一个aspx页面html代码&lt;html&nbsp;xmlns="http://www.w3.org/1999/xhtml"&nbsp;&gt;&lt;head&nbsp;id="Head1"&nbsp;runat="server"&gt;&nbsp;&nbsp;&nbsp;&nbsp;&lt;title&gt;小山&lt;/title&gt;&nbsp...&nbsp;&nbsp;<a href='http://www.blogjava.net/cgogg/articles/125319.html'>阅读全文</a><img src ="http://www.blogjava.net/cgogg/aggbug/125319.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cgogg/" target="_blank">chenguo</a> 2007-06-20 13:22 <a href="http://www.blogjava.net/cgogg/articles/125319.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JavaScript调用Web Services实现无刷新三联动</title><link>http://www.blogjava.net/cgogg/articles/125318.html</link><dc:creator>chenguo</dc:creator><author>chenguo</author><pubDate>Wed, 20 Jun 2007 05:20:00 GMT</pubDate><guid>http://www.blogjava.net/cgogg/articles/125318.html</guid><wfw:comment>http://www.blogjava.net/cgogg/comments/125318.html</wfw:comment><comments>http://www.blogjava.net/cgogg/articles/125318.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cgogg/comments/commentRss/125318.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cgogg/services/trackbacks/125318.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: JavaScript调用Web Services实现无刷新三联动使用微软提供的webservice.htc实现通过JavaScript调用WebService.1.首先从微软网站上下载webservice.htc,我附件源代码也包含，不下载也可以http://msdn.microsoft.com/workshop/author/webservice/webservice.htc2.在网...&nbsp;&nbsp;<a href='http://www.blogjava.net/cgogg/articles/125318.html'>阅读全文</a><img src ="http://www.blogjava.net/cgogg/aggbug/125318.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cgogg/" target="_blank">chenguo</a> 2007-06-20 13:20 <a href="http://www.blogjava.net/cgogg/articles/125318.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ajax实现无刷新三联动下拉框</title><link>http://www.blogjava.net/cgogg/articles/125316.html</link><dc:creator>chenguo</dc:creator><author>chenguo</author><pubDate>Wed, 20 Jun 2007 05:17:00 GMT</pubDate><guid>http://www.blogjava.net/cgogg/articles/125316.html</guid><wfw:comment>http://www.blogjava.net/cgogg/comments/125316.html</wfw:comment><comments>http://www.blogjava.net/cgogg/articles/125316.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cgogg/comments/commentRss/125316.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cgogg/services/trackbacks/125316.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Ajax实现无刷新三联动下拉框1.html代码&lt;HTML&gt;&nbsp;&nbsp;&nbsp;&nbsp;&lt;HEAD&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;title&gt;Ajax实现无刷新三联动下拉框&lt;/title&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&...&nbsp;&nbsp;<a href='http://www.blogjava.net/cgogg/articles/125316.html'>阅读全文</a><img src ="http://www.blogjava.net/cgogg/aggbug/125316.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cgogg/" target="_blank">chenguo</a> 2007-06-20 13:17 <a href="http://www.blogjava.net/cgogg/articles/125316.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ajax无刷新实现图片切换特效</title><link>http://www.blogjava.net/cgogg/articles/125315.html</link><dc:creator>chenguo</dc:creator><author>chenguo</author><pubDate>Wed, 20 Jun 2007 05:14:00 GMT</pubDate><guid>http://www.blogjava.net/cgogg/articles/125315.html</guid><wfw:comment>http://www.blogjava.net/cgogg/comments/125315.html</wfw:comment><comments>http://www.blogjava.net/cgogg/articles/125315.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cgogg/comments/commentRss/125315.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cgogg/services/trackbacks/125315.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Ajax无刷新实现图片切换特效1.页面cs代码using&nbsp;System;using&nbsp;System.Data;using&nbsp;System.Configuration;using&nbsp;System.Web;using&nbsp;System.Web.Security;using&nbsp;System.Web.UI;using&nbsp;System....&nbsp;&nbsp;<a href='http://www.blogjava.net/cgogg/articles/125315.html'>阅读全文</a><img src ="http://www.blogjava.net/cgogg/aggbug/125315.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cgogg/" target="_blank">chenguo</a> 2007-06-20 13:14 <a href="http://www.blogjava.net/cgogg/articles/125315.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title> web应用的跨越访问的解决方案</title><link>http://www.blogjava.net/cgogg/articles/124992.html</link><dc:creator>chenguo</dc:creator><author>chenguo</author><pubDate>Mon, 18 Jun 2007 10:16:00 GMT</pubDate><guid>http://www.blogjava.net/cgogg/articles/124992.html</guid><wfw:comment>http://www.blogjava.net/cgogg/comments/124992.html</wfw:comment><comments>http://www.blogjava.net/cgogg/articles/124992.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cgogg/comments/commentRss/124992.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cgogg/services/trackbacks/124992.html</trackback:ping><description><![CDATA[做过跨越多个网站的Ajax开发的朋友都知道，如果在A网站中，我们希望使用Ajax来获得B网站中的特定内容，如果A网站与B网站不在同一个域中，那么就出现了跨域访问问题。<br>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ajax的跨域访问问题是现有的Ajax开发人员比较常遇到的问题。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IE对于跨域访问的处理是，弹出警告框，提醒用户。如果用户将该网站纳入可信任网站，或者调低安全级别，那么这个问题IE就不会在提醒你。&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FireFox等其它非微软的浏览器遇到跨域访问，则解决方案统一是拒绝访问。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
有人说，IE是主流浏览器，只要它能正常使用就好了。此言差已，IE虽然能够处理，但是是有前提的，要么用户不厌其烦地在页面弹出警告框之后点击是（点击
否就不执行该Ajax调用了），要么用户将该网站纳入可信任站点。这两种做法，在企业管理系统的应用中倒是比较常见，因为系统管理员可以以行政手段保证用
户的行为。但是对于互联网上的网站或者门户开发，这种做法则不行。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;最近遇到了这个问题，需要在跨域访问结束之后完成使主窗口出现一些特效，搜索了一些资料，通过不断尝试以及在不同浏览器中进行兼容性测试，找到了几个可行的方案：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1、
Web代理的方式。即用户访问A网站时所产生的对B网站的跨域访问请求均提交到A网站的指定页面，由该页面代替用户页面完成交互，从而返回合适的结果。此
方案可以解决现阶段所能够想到的多数跨域访问问题，但要求A网站提供Web代理的支持，因此A网站与B网站之间必须是紧密协作的，且每次交互过程，A网站
的服务器负担增加，且无法代用户保存session状态。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2、on-Demand方式。MYMSN的门户就用的这种方式，不过
MYMSN中不涉及跨域访问问题。动态控制script标记的生成，通过修改script标记的src属性完成对跨域页面的调用。此方案存在的缺陷是，
script的src属性完成该调用时采取的方式时get方式，如果请求时传递的字符串过大时，可能会无法正常运行。不过此方案非常适合聚合类门户使用。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3、
iframe方式。查看过醒来在javaeye上的一篇关于跨域访问的帖子，他提到自己已经用iframe的方式解决了跨域访问问题。数据提交跟获取，采
用iframe这种方式的确可以了，但由于父窗口与子窗口之间不能交互（跨域访问的情况下，这种交互被拒绝），因此无法完成对父窗口效果的影响。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4、
用户本地转储方式：IE本身依附于windows平台的特性为我们提供了一种基于iframe，利用内存来&#8220;绕行&#8221;的方案，即两个window之间可以在
客户端通过windows剪贴板的方式进行数据传输，只需要在接受数据的一方设置Interval进行轮询，获得结果后清除Interval即可。FF的
平台独立性决定了它不支持剪贴板这种方式，而以往版本的FF中存在的插件漏洞又被fixed了，所以FF无法通过内存来完成暗渡陈仓。而由于文件操作FF
也没有提供支持（无法通过Cookie跨域完成数据传递），致使这种技巧性的方式只能在IE中使用。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5、我自己用于解决这类问
题的方式：结合了前面几种方式，在访问A网站时，先请求B网站完成数据处理，再根据返回的标识来获得所需的结果。这种方法的缺点也很明显，B网站的负载增
大了。优点，对session也实现了保持，同时A网站与B网站页面间的交互能力增强了。最重要的一点，这种方案满足了我的全部需要.</p>
<br><img src ="http://www.blogjava.net/cgogg/aggbug/124992.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cgogg/" target="_blank">chenguo</a> 2007-06-18 18:16 <a href="http://www.blogjava.net/cgogg/articles/124992.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>IFrame 的使用</title><link>http://www.blogjava.net/cgogg/articles/123818.html</link><dc:creator>chenguo</dc:creator><author>chenguo</author><pubDate>Wed, 13 Jun 2007 03:05:00 GMT</pubDate><guid>http://www.blogjava.net/cgogg/articles/123818.html</guid><wfw:comment>http://www.blogjava.net/cgogg/comments/123818.html</wfw:comment><comments>http://www.blogjava.net/cgogg/articles/123818.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cgogg/comments/commentRss/123818.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cgogg/services/trackbacks/123818.html</trackback:ping><description><![CDATA[在我们进行jsp的开发中，不可避免的会遇到有jsp层叠的情况，所以经过我的试验，&lt;IFRAME&gt;这个标签还是很有的作用的。下面我们来看看具体怎么使用：
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 首先<br>&lt;IFRAME ID="IFrame2" FRAMEBORDER=0
onload="dyniframesize('IFrame2');" marginwidth=0 marginheight=0
SCROLLING=NO SRC="****.jsp" width="187"&gt;&lt;/IFRAME&gt;<br><br>&lt;script language="Javascript"&gt;<br>&lt;!--<br>var getFFVersion=navigator.userAgent.substring(navigator.userAgent.indexOf("Firefox")).split("/")[1]<br>//extra height in px to add to iframe in FireFox 1.0+ browsers<br>var FFextraHeight=getFFVersion&gt;=0.1? 16 : 0 </p>
<p>function dyniframesize(iframename) {<br>&nbsp; var pTar = null;<br>&nbsp; if (document.getElementById){<br>&nbsp;&nbsp;&nbsp; pTar = document.getElementById(iframename);<br>&nbsp; }<br>&nbsp; else{<br>&nbsp;&nbsp;&nbsp; eval('pTar = ' + iframename + ';');<br>&nbsp; }<br>&nbsp; if (pTar &amp;&amp; !window.opera){<br>&nbsp;&nbsp;&nbsp; //begin resizing iframe<br>&nbsp;&nbsp;&nbsp; pTar.style.display="block"<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; if (pTar.contentDocument &amp;&amp; pTar.contentDocument.body.offsetHeight){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //ns6 syntax<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pTar.height = pTar.contentDocument.body.offsetHeight+FFextraHeight; <br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; else if (pTar.Document &amp;&amp; pTar.Document.body.scrollHeight){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //ie5+ syntax<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pTar.height = pTar.Document.body.scrollHeight;<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp; }<br>}<br>--&gt;<br>&lt;/script&gt;<br><br>&lt;IFRAME&gt; 里面的属性我就不多说了，都是很常见的。这里我多写了一个函数dyniframesize()，它的作用是处理装载页面与容器页面的同步，即将大小调整到合适的位置。<br>因为这样装载的页面很难固定的控制大小，所以用Document进行相对大小的设定，是一个不错的想法。</p>
<br><img src ="http://www.blogjava.net/cgogg/aggbug/123818.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cgogg/" target="_blank">chenguo</a> 2007-06-13 11:05 <a href="http://www.blogjava.net/cgogg/articles/123818.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一日精通Ajax技术</title><link>http://www.blogjava.net/cgogg/articles/123794.html</link><dc:creator>chenguo</dc:creator><author>chenguo</author><pubDate>Wed, 13 Jun 2007 02:26:00 GMT</pubDate><guid>http://www.blogjava.net/cgogg/articles/123794.html</guid><wfw:comment>http://www.blogjava.net/cgogg/comments/123794.html</wfw:comment><comments>http://www.blogjava.net/cgogg/articles/123794.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cgogg/comments/commentRss/123794.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cgogg/services/trackbacks/123794.html</trackback:ping><description><![CDATA[<h1>一日精通Ajax技术</h1>
<p>　　Ajax这个名称怎么来的，本人也不得而之了，大概是（Active
Javascript Action Xml）吧，说白一点就是运用了 javascript、xmlhttp和xmldom技术及网站后台来处理用户的一些操作的方法吧。</p>
<p>　　那么本人就分三步来说明如何使用 Ajax 技术来做开发。</p>
<p>　　一、用 javascript 操作 xmlhttp 对象</p>
<p>　　二、服务器部对xmlhttp请求的响应（PHP范例）</p>
<p>　　三、xmldom 的使用方法</p>
<p>　　先说第一部份：</p>
<p>　　一、用 javascript 操作 xmlhttp 对象</p>
<p>　　IE7, Mozilla ,Firefox等浏览器中，javascript是内置有 XMLHttpRequest 这个对象的，但IE5+则没有，需要用如下方法来启动：<br>
//IE 6<br>
try{ xhttp = new ActiveXObject("Msxml2.XMLHTTP";} catch(e){ ; }<br>
//IE5+<br>
if(xhttp == null) try { xhttp = new
ActiveXObject("Microsoft.XMLHTTP";} catch(e){ ; }</p>
<p>　　那考虑不同浏览器的兼容，启动一个xmlhttp一般都要按如下方式：</p>
<p>CODE:[Copy to clipboard]var xhttp = null;</p>
<p>if(window.XMLHttpRequest){ //IE7, Mozilla ,Firefox 等浏览器内置该对象</p>
<p>&nbsp; xhttp = new XMLHttpRequest();<br>
&nbsp; <br>
}else if(window.ActiveXObject){ //IE6、IE5</p>
<p>&nbsp; try{ xhttp = new ActiveXObject("Msxml2.XMLHTTP");}
catch (e){ ; }<br>
&nbsp; <br>
&nbsp; if( xhttp == null) try { xhttp = new
ActiveXObject("Microsoft.XMLHTTP");} catch (e){; }<br>
&nbsp; <br>
}</p>
<p>　　对于 xmlhttp 的使用，一般遵守如下的顺序：</p>
<p>　　1、初始化 xmlhttp 对象（上文）；</p>
<p>　　2、打开链接</p>
<p>　　方法</p>
<p>xhttp.open("GET", purl, true); </p>
<p>　　参数一：用 GET 或 POST 方式发送数据</p>
<p>　　参数二、请求网址（只能请求你服务器上的资源，一般浏览器安全限制不能读取跨域的数据）</p>
<p>　　参数三、true 表示异步传输（服务器返回信息完成前，你可以进行其它操作），false 表示阻断方式的传输。</p>
<p>　　3、设定要发送的 http 请求头</p>
<p>　　方法：</p>
<p>xhttp.setRequestHeader(key,value);</p>
<p>　　一般来说，默认要发送的头是：xhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded";</p>
<p>　　这种表示发送的内容类型的请求头用于发送文本数据，而且javascript默认是以unicode发送的，还有另外一种形式是：xhttp.setRequestHeader("Content-Type","multipart/form-data";这表示发送二制形式的数据，由于安全性原因，javascript一般不能用这种方式来发送数据，所以这个头一般没什么用。</p>
<p>　　如果你的网站开启了使用 refer 参数来防盗链，那么你必须用这个方法指定 Refer 参数，或者如果用户需要登录才能进行某操作，那么要指定 Cookie 的请求头。</p>
<p>　　4、send 数据</p>
<p>　　方法：xhttp.send(postdata);</p>
<p>　　对于用 get攻手请求，不需要指定postdata，直接用 test.php?a=a&amp;b=b 这样形式的网址来请求即可。</p>
<p>　　如果是post方式，需要用
key1=value2&amp;key2=value2 这样的形式来对数据进行处理，把它合并在
postdata 字串中，然后发送。</p>
<p>　　注意事项：</p>
<p>　　javascript默认发送数据的方式是unicode，处理返回的数据必须是utf-8格式，因此，在发送的时候，需要用escape()函数来处理postdata和网址的value，在服务器上必须还原这些value，并把unicode转为页面编码值，因此如果用 jsp 或 asp.<a href="http://www.25175.net/" title="25175.net分网站">net</a> 都会比较简单，但如果用php处理起来是什么费劲的，等下会教你如何做。</p>
<p>　　5、确认服务器返回资料完成下载</p>
<p>　　[1] 如果用阻断的方式来发送请求，那么直接用
if(xhttp.readyState == 4)就能判断是否完成。</p>
<p>readyState 的具体属性值为：<br>
0 没open<br>
1 没send<br>
2 状态未知<br>
3 正在传送<br>
4 传送完成</p>
<p>　　当然为了保障起见，还需要加多一重判断，就是 if(xhttp.status == 200) ，status 就是 http 协议里的返回头代码</p>
<p>1xx 表示（唉呀，忘记了）<br>
2xx 表示成功的信息<br>
3xx 表示页面转移<br>
4xx 页面不存在<br>
5xx 表示服务器的各种错误</p>
<p>　　如果你的页面没特殊处理，一般用 if(xhttp.status == 200)&nbsp; 来确信内容返回是正确的</p>
<p>　　[2] 如果用异步传输，需要用
onreadystatechange 的事件来监听</p>
<p>xhttp.onreadystatechange = function()<br>
{<br>
&nbsp;&nbsp; //这里来进行上面阻断方式的判断<br>
&nbsp;&nbsp; if(myajax.xhttp.readyState == 4){<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if(myajax.xhttp.status == 200){<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
//要进行的后续操作<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
}<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
}</p>
<p>　　6、获取返回结果</p>
<p>属性：<br>
[1]xhttp.responseBody;<br>
[2]xhttp.responseStream;<br>
[3]xhttp.responseXml;<br>
[4]xhttp.responseText;</p>
<p>　　其中1、2都是二进制的方式，一般很少会用到，4不用看都知道了</p>
<p>　　如果服务端无意外的话[3]返回的是一个xmldom的对象</p>
<p>　　二、服务器部对xmlhttp请求的响应（PHP范例）</p>
<p>　　为了简化操作，在这里把 xmlhttp的各作操作封装为一个类</p>
<p>　　CODE:[Copy to clipboard]function DedeAjax(WiteOKFunc){
//WiteOKFunc 为异步状态事件处理函数 </p>
<p>//xmlhttp和xmldom对象<br>
this.xhttp = null;<br>
this.xdom = null;</p>
<p>//post或get发送数据的键值对<br>
this.keys = Array();<br>
this.values = Array();<br>
this.keyCount = -1;</p>
<p>//http请求头<br>
this.rkeys = Array();<br>
this.rvalues = Array();<br>
this.rkeyCount = -1;<br>
//请求头类型<br>
this.rtype = 'text';</p>
<p>//初始化xmlhttp<br>
if(window.XMLHttpRequest){//IE7, Mozilla ,Firefox 等浏览器内置该对象<br>
&nbsp;&nbsp;&nbsp;&nbsp; this.xhttp = new XMLHttpRequest();<br>
}else if(window.ActiveXObject){//IE6、IE5<br>
&nbsp;&nbsp;&nbsp;&nbsp; try { this.xhttp = new
ActiveXObject("Msxml2.XMLHTTP");} catch (e) { }<br>
&nbsp;&nbsp;&nbsp;&nbsp; if (this.xhttp == null) try { this.xhttp = new
ActiveXObject("Microsoft.XMLHTTP");} catch (e) { }<br>
}<br>
this.xhttp.onreadystatechange = WiteOKFunc;<br>
//rs: responseBody、responseStream、responseXml、responseText</p>
<p>//以下为成员函数<br>
//--------------------------------</p>
<p>//初始化xmldom<br>
this.InitXDom = function(){<br>
&nbsp; var obj = null;<br>
&nbsp; if (typeof(DOMParser) != "undefined") { // Gecko、Mozilla、Firefox<br>
&nbsp;&nbsp;&nbsp; var parser = new DOMParser();<br>
&nbsp;&nbsp;&nbsp; obj = parser.parseFromString(xmlText, "text/xml");<br>
&nbsp; } else { // IE<br>
&nbsp;&nbsp;&nbsp; try { obj = new
ActiveXObject("MSXML2.DOMDocument");} catch (e) { }<br>
&nbsp;&nbsp;&nbsp; if (obj == null) try { obj = new
ActiveXObject("Microsoft.XMLDOM"); } catch (e) { }<br>
&nbsp; }<br>
&nbsp; this.xdom = obj;<br>
};</p>
<p>//增加一个POST或GET键值对<br>
this.AddKey = function(skey,svalue){<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.keyCount++;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.keys[this.keyCount] = skey;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.values[this.keyCount] =
escape(svalue);<br>
};</p>
<p>//增加一个Http请求头键值对<br>
this.AddHead = function(skey,svalue){<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.rkeyCount++;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.rkeys[this.rkeyCount] = skey;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.rvalues[this.rkeyCount] =
svalue;<br>
};</p>
<p>//清除当前对象的哈希表参数<br>
this.ClearSet = function(){<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.keyCount = -1;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.keys = Array();<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.values = Array();<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.rkeyCount = -1;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.rkeys = Array();<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.rvalues = Array();<br>
};</p>
<p>//发送http请求头<br>
this.SendHead = function(){<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(this.rkeyCount!=-1){ //发送用户自行设定的请求头<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
for(;i&lt;=this.rkeyCount;i++){<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
this.xhttp.setRequestHeader(this.rkeys[i],this.rvalues[i]); <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
&nbsp; }<br>
if(this.rtype=='binary'){<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.xhttp.setRequestHeader("Content-Type","multipart/form-data");<br>
&nbsp; }else{<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
this.xhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");<br>
&nbsp; }<br>
};</p>
<p>//用Post方式发送数据<br>
this.SendPost = function(purl){<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var pdata = "";<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var i=0;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.state = 0;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.xhttp.open("POST",
purl, true); <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.SendHead();<br>
&nbsp; if(this.keyCount!=-1){ //post数据<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
for(;i&lt;=this.keyCount;i++){<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if(pdata=="") pdata = this.keys[i]+'='+this.values[i];<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
else pdata += "&amp;"+this.keys[i]+'='+this.values[i];<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
&nbsp; }<br>
&nbsp; this.xhttp.send(pdata);<br>
};</p>
<p>//用GET方式发送数据<br>
this.SendGet = function(purl){<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var gkey = "";<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var i=0;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.state = 0;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(this.keyCount!=-1){ //get参数<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(;i&lt;=this.keyCount;i++){<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if(gkey=="") gkey = this.keys[i]+'='+this.values[i];<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
else gkey += "&amp;"+this.keys[i]+'='+this.values[i];<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if(purl.indexOf('?')==-1) purl = purl + '?' + gkey;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else&nbsp; purl = purl +
'&amp;' + gkey;<br>
&nbsp; }<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.xhttp.open("GET",
purl, true); <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.SendHead();<br>
&nbsp; this.xhttp.send();<br>
};</p>
<p>} // End Class DedeAjax<br>
上面代码保存为： dedeajax.js</p>
<p>ok 那现在做个最简单的测试吧<br>
test.htm</p>
<p>CODE:[Copy to clipboard]&lt;script
language='javascript'&nbsp; src='dedeajax.js'&gt;&lt;/script&gt;<br>
&lt;script language='javascript'&gt;<br>
function WiteOK()<br>
{<br>
&nbsp;&nbsp; var myinfo = document.getElementById("myinfo");<br>
&nbsp;&nbsp;&nbsp; if(myajax.xhttp.readyState == 4){<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(myajax.xhttp.status == 200){<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
myinfo.innerHTML = myajax.xhttp.responseText;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; }<br>
}<br>
var myajax = new DedeAjax(WiteOK);<br>
myajax.AddKey("key1","----------------------------");<br>
myajax.SendPost("test.php");</p>
<p>&lt;/script&gt;</p>
<p>&lt;div id='myinfo'&gt;&lt;div&gt;<br>
test.php</p>
<p><br>
CODE:[Copy to clipboard]&lt;?<br>
header("Content-Type: text/html; charset=gb2312");<br>
echo $_POST['key1'];<br>
?&gt;<br>
看到了什么了呢？不用激动，真正让你头痛的东西还没有出来。</p>
<p>把类里面的</p>
<p>CODE:[Copy to clipboard]this.AddKey =
function(skey,svalue){<br>
&nbsp;&nbsp; this.keyCount++;<br>
&nbsp;&nbsp; this.keys[this.keyCount] = skey;<br>
&nbsp;&nbsp; this.values[this.keyCount] = svalue;//escape(svalue);<br>
};<br>
escape 屏蔽掉</p>
<p>发送 <br>
myajax.AddKey("key1","-----中---国----人-----";</p>
<p>看到什么了，乱码是吧？呵呵，这回开始头大了</p>
<p>先把 escape放回去<br>
this.values[this.keyCount] = escape(svalue);</p>
<p>那么看到的就是<br>
-----%u4E2D---%u56FD----%u4EBA-----</p>
<p>如何把&nbsp; %u4E2D&nbsp; 这些东西弄回来呢？对于php而言这是一个很复杂的问题，如果用asp就简单多了</p>
<p>下面是我写的一个函数：</p>
<p><br>
CODE:[Copy to clipboard]//unicode url编码转gbk编码函数<br>
function Unicode2Gbk($str)<br>
{<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //载入对照词典<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(!isset($GLOBALS['GbkUniDic']))<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $ds =
file("./data/gbk_unicode.dic");<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; foreach($ds as $l){<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
$GLOBALS['GbkUniDic'][hexdec('0x'.substr($l,0,4))] = substr($l,5,4);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
&nbsp; }<br>
&nbsp; //处理字符串<br>
&nbsp; $glen = strlen($str);<br>
&nbsp; $okstr = "";<br>
&nbsp; for($i=0; $i &lt; $glen; $i++)<br>
&nbsp; {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if( $glen-$i &gt;
4){<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if($str[$i]=='%' &amp;&amp; $str[$i+1]=='u'){<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
$uni = hexdec('0x'.substr($str,$i+2,4));<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if(isset($GLOBALS['GbkUniDic'][$uni])){<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
$uni = $GLOBALS['GbkUniDic'][$uni];<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
$okstr .= chr(hexdec(substr($uni,0,2))).chr(hexdec(substr($uni,2,2)));<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
}<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
else $okstr .= "&#{".hexdec("0x".$uni).";";<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
$i = $i+5;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
}<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
else $okstr .= $str[$i];<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else $okstr .=
$str[$i];<br>
&nbsp; }<br>
&nbsp; return $okstr;<br>
}<br>
词典文件： <a href="http://www.ce86.com/myimg/data.rar">http://www.ce86.com/myimg/data.rar</a></p>
<p><br>
把test.php 输出改为</p>
<p>echo Unicode2Gbk($_POST['key1']);</p>
<p>正常了吧</p>
<p>以下说下面和xml有关的东西的了</p>
<p>　　三、xmldom 的使用方法<br>
<br>
由于本文仅是牵针引线的作用，这一章就简单些，因为针对的是 php ，如果针对的是 asp.<a href="http://www.25175.net/" title="25175.net分网站">net</a> 或 jsp 写涉及 web server 类的通信，已经不单纯是 ajax&nbsp; 的问题了，本章的任务是把test2.php</p>
<p>CODE:[Copy to clipboard]&lt;?<br>
header("Content-Type: text/xml; charset=gb2312");<br>
echo '&lt;'.'?'."xml version=\"1.0\"
encoding=\"gb2312\" ".'?'."&gt;<br>
&lt;myhome&gt;<br>
&nbsp; &lt;item sex=\"男\"&gt;我是小一&lt;/item&gt;<br>
&nbsp; &lt;item sex=\"女\"&gt;我是小二&lt;/item&gt;<br>
&lt;/myhome&gt;<br>
";<br>
?&gt;这个xml文档在客户端用自己的方式展现出来。因为xml这种东西比较麻烦，所以语法也必须严格，test2.htm的页面的源码为</p>
<p>CODE:[Copy to clipboard]&lt;html&gt;<br>
&lt;head&gt;<br>
&lt;meta http-equiv="Content-Type" content="text/html;
charset=gb2312"&gt;<br>
&lt;title&gt;ajax测试&lt;/title&gt;<br>
&lt;/head&gt;<br>
&lt;body onload="WiteLoadDocument()"&gt;<br>
&lt;script language='javascript'&nbsp; src='dedeajax.js'&gt;&lt;/script&gt;<br>
&lt;script language='javascript'&gt;<br>
var myajax = new DedeAjax(WiteOK);<br>
function WiteOK()<br>
{<br>
&nbsp;&nbsp; var myinfo = document.getElementById("myinfo");<br>
&nbsp;&nbsp; var mydom = null;<br>
&nbsp;&nbsp; myinfo.innerHTML = "以下是处理结果：&lt;br/&gt;";<br>
&nbsp;&nbsp; if(myajax.xhttp.readyState == 4){<br>
&nbsp;&nbsp;&nbsp;&nbsp; mydom = myajax.xhttp.responseXml;<br>
&nbsp;&nbsp;&nbsp;&nbsp; alert(mydom);<br>
&nbsp;&nbsp; }<br>
}<br>
function WiteLoadDocument()<br>
{<br>
&nbsp;&nbsp; myajax.SendGet("test2.php");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<br>
}<br>
&lt;/script&gt;<br>
&lt;div id='myinfo'&gt;&lt;div&gt;<br>
&lt;/body&gt;<br>
&lt;/html&gt;<br>
在IE中测试一下，如果弹出的对话框是 [object] 就表示成功获得返回的xml的xmldoc了。</p>
<p>那下面是处理：</p>
<p>CODE:[Copy to clipboard]function WiteOK()<br>
{<br>
&nbsp;&nbsp; var myinfo = document.getElementById("myinfo");<br>
&nbsp;&nbsp; var mydom = null;<br>
&nbsp;&nbsp; myinfo.innerHTML = "以下是处理结果：&lt;br/&gt;";<br>
&nbsp;&nbsp; if(myajax.xhttp.readyState == 4){<br>
&nbsp;&nbsp;&nbsp;&nbsp; mydom = myajax.xhttp.responseXml;<br>
&nbsp;&nbsp;&nbsp;&nbsp; var nodeList =
mydom.selectNodes("/myhome/item");<br>
&nbsp;&nbsp;&nbsp;&nbsp; var mynode = null;<br>
&nbsp;&nbsp;&nbsp;&nbsp; var myatt = null;<br>
&nbsp;&nbsp;&nbsp;&nbsp; var mysex = "";<br>
&nbsp;&nbsp;&nbsp;&nbsp; for(i=1;i&lt;=nodeList.length;i++)<br>
&nbsp;&nbsp;&nbsp;&nbsp; {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
mynode = nodeList[i-1];<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
for(j=0;j &lt; myinfo.attributes.length;j++)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
{<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if(!mynode.attributes[j]) break;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
myatt = mynode.attributes[j];<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if(myatt.name=='sex') mysex = myatt.value;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
}<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
myinfo.innerHTML += "我是："+mynode.text+"，我的性别是："+ mysex +"&lt;br/&gt;";<br>
&nbsp;&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp; }<br>
}</p>
<p>结果：</p>
<p>CODE:[Copy to clipboard]以下是处理结果：<br>
我是：我是小一，我的性别是：男<br>
我是：我是小二，我的性别是：女<br>
OK，目的已经达到</p>
<p>　　关于dom的部份只在IE6中测试过，可能在firefox中会有问题，大家可能参考与兼容性有关的文档。</p>
<br><img src ="http://www.blogjava.net/cgogg/aggbug/123794.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cgogg/" target="_blank">chenguo</a> 2007-06-13 10:26 <a href="http://www.blogjava.net/cgogg/articles/123794.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ajax组件--xmlhttp</title><link>http://www.blogjava.net/cgogg/articles/123790.html</link><dc:creator>chenguo</dc:creator><author>chenguo</author><pubDate>Wed, 13 Jun 2007 02:14:00 GMT</pubDate><guid>http://www.blogjava.net/cgogg/articles/123790.html</guid><wfw:comment>http://www.blogjava.net/cgogg/comments/123790.html</wfw:comment><comments>http://www.blogjava.net/cgogg/articles/123790.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cgogg/comments/commentRss/123790.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cgogg/services/trackbacks/123790.html</trackback:ping><description><![CDATA[<p>XMLHTTP的使用 </p>
<p>　　顾名思义，XMLHTTP是个传送XML格式数据的超文本传输协议。 </p>
<p>　　实际上，XMLHTTP的数据传输过程更为灵活一些： </p>
<p>　　它上传的指令可以是XML格式数据，也可以是字符串，流，或者一个无符号整数数组。还可以是URL的参数。 </p>
<p>　　它下达的结果可以是XML格式数据，也可以是字符串，流，或者一个无符号整数数组。 </p>
<p>　　详情可参阅文末链接。 </p>
<p>　　客户端调用XMLHTTP的过程很简单，只有5个步骤： </p>
<p>　　1、创建XMLHTTP对象 </p>
<p>　　2、打开与服务端的连接，同时定义指令发送方式，服务网页(URL)和请求权限等。 </p>
<p>　　客户端通过Open命令打开与服务端的服务网页的连接。与普通HTTP指令传送一样，可以用"GET"方法或"POST"方法指向服务端的服务网页。 </p>
<p>　　3、发送指令。 </p>
<p>　　4、等待并接收服务端返回的处理结果。 </p>
<p>　　5、释放XMLHTTP对象 </p>
<p>　　XMLHTTP方法</p>
<p>　　Open bstrMethod, bstrUrl, varAsync, bstrUser,
bstrPassword</p>
<p>　　bstrMethod：数据传送方式，即GET或POST。 </p>
<p>　　bstrUrl：服务网页的URL。</p>
<p>　　varAsync：是否同步执行。缺省为True，即同步执行，但只能在DOM中实施同步执行。应用中一般将其置为False，即异步执行。</p>
<p>　　bstrUser：用户名，可省略。 </p>
<p>　　bstrPassword：用户口令，可省略。 </p>
<p>　　Send varBody </p>
<p>　　varBody：指令集。可以是XML格式数据，也可以是字符串，流，或者一个无符号整数数组。也可以省略，让指令通过Open方法的URL参数代入。 </p>
<p>　　setRequestHeader bstrHeader, bstrValue </p>
<p>　　bstrHeader：HTTP 头(header) </p>
<p>　　bstrValue：HTTP 头(header)的值</p>
<p>　　如果Open方法定义为POST，可以定义表单方式上传xmlhttp.setRequestHeader "Content-Type",
"application/x-www-form-urlencoded" </p>
<p>　　XMLHTTP属性</p>
<p>　　onreadystatechange：在同步执行方式下获得返回结果的事件句柄。只能在DOM中调用。 </p>
<p>　　responseBody：结果返回为无符号整数数组。 </p>
<p>　　responseStream：结果返回为IStream流。 </p>
<p>　　responseText ：结果返回为字符串。 </p>
<p>　　responseXML：结果返回为XML格式数据。 </p>
<p>　　下面是本文附件源程序中的一个应用示例： </p>
<p>　　Function GetResult(urlStr) </p>
<p>　　Dim xmlHttp </p>
<p>　　Dim retStr</p>
<p>　　Set xmlHttp = CreateObject("Msxml2.XMLHTTP") '创建对象</p>
<p>　　On Error Resume Next '出错处理 </p>
<p>　　xmlHttp.Open "POST", urlStr, False '用POST方式打开连接，异步执行。 </p>
<p>　　xmlHttp.setRequestHeader "Content-Type",
"application/x-www-form-urlencoded" '上传表单</p>
<p>　　xmlHttp.Send '发送指令</p>
<p>　　If Err.Number = 0 Then '如果连接正确 </p>
<p>　　retStr = xmlHttp.responseText '等待并获得服务端返回的结果字符串</p>
<p>　　Else </p>
<p>　　retStr = "Url not found" '否则返回出错信息 </p>
<p>　　End If </p>
<p>　　Set xmlHttp = nothing '释放对象 </p>
<p>　　GetResult = retStr '返回结果 </p>
<p>　　End Function </p>
<p>　　GetResult()函数带入一个服务网页的URL参数，把上传的指令安放在URL后面的参数上，如： </p>
<p>　　urlStr = "server.asp?cmd=" &amp; cmd &amp;
"&amp;db=" &amp; db &amp; "table=" &amp; table </p>
<p>　　cmd：执行方式，例如<a href="http://www.25175.com/" title="25175学生成绩管理查询系统">查询</a>，修改，删除等等。 </p>
<p>　　db：服务端数据库名 </p>
<p>　　table：服务端表名 </p>
<p>　　然后提交指令，等待并接收返回的处理结果。结果以字符串方式返回。最后由函数调用者处理并显示结果。</p>
<br><img src ="http://www.blogjava.net/cgogg/aggbug/123790.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cgogg/" target="_blank">chenguo</a> 2007-06-13 10:14 <a href="http://www.blogjava.net/cgogg/articles/123790.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ajax-http状态码手册</title><link>http://www.blogjava.net/cgogg/articles/123789.html</link><dc:creator>chenguo</dc:creator><author>chenguo</author><pubDate>Wed, 13 Jun 2007 02:09:00 GMT</pubDate><guid>http://www.blogjava.net/cgogg/articles/123789.html</guid><wfw:comment>http://www.blogjava.net/cgogg/comments/123789.html</wfw:comment><comments>http://www.blogjava.net/cgogg/articles/123789.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cgogg/comments/commentRss/123789.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cgogg/services/trackbacks/123789.html</trackback:ping><description><![CDATA[<p style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">(一) HTTP 1.1支持的状态代码</p>
<p style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">100
Continue 初始的请求已经接受，客户应当继续发送请求的其余部分<br>
101 Switching Protocols 服务器将遵从客户的请求转换到另外一种协议<br>
200 OK 一切正常，对GET和POST请求的应答文档跟在后面。<br>
201 Created 服务器已经创建了文档，Location头给出了它的URL。 <br>
202 Accepted 已经接受请求，但处理尚未完成。 <br>
203 Non-Authoritative Information 文档已经正常地返回，但一些应答头可能不正确，因为使用的是文档的拷贝 <br>
204 No Content 没有新文档，浏览器应该继续显示原来的文档。如果用户定期地刷新页面，而Servlet可以确定用户文档足够新，这个状态代码是很有用的<br>
205 Reset Content 没有新的内容，但浏览器应该重置它所显示的内容。用来强制浏览器清除表单输入内容<br>
206 Partial Content 客户发送了一个带有Range头的GET请求，服务器完成了它<br>
300 Multiple Choices 客户请求的文档可以在多个位置找到，这些位置已经在返回的文档内列出。如果服务器要提出优先选择，则应该在Location应答头指明。 <br>
301 Moved Permanently 客户请求的文档在其他地方，新的URL在Location头中给出，浏览器应该自动地访问新的URL。 <br>
302 Found 类似于301，但新的URL应该被视为临时性的替代，而不是永久性的。 <br>
303 See Other 类似于301/302，不同之处在于，如果原来的请求是POST，Location头指定的重定向目标文档应该通过GET提取<br>
304 Not Modified 客户端有缓冲的文档并发出了一个条件性的请求（一般是提供If-Modified-Since头表示客户只想比指定日期更新的文档）。服务器告诉客户，原来缓冲的文档还可以继续使用。 <br>
305 Use Proxy 客户请求的文档应该通过Location头所指明的代理服务器提取<br>
307 Temporary Redirect 和302（Found）相同。许多浏览器会错误地响应302应答进行重定向，即使原来的请求是POST，即使它实际上只能在POST请求的应答是303时才能重定向。由于这个原因，HTTP
1.1新增了307，以便更加清除地区分几个状态代码：当出现303应答时，浏览器可以跟随重定向的GET和POST请求；如果是307应答，则浏览器只能跟随对GET请求的重定向。 <br>
400 Bad Request 请求出现语法错误。 <br>
401 Unauthorized 客户试图未经授权访问受密码保护的页面。应答中会包含一个WWW-Authenticate头，浏览器据此显示用户名字/密码对话框，然后在填写合适的Authorization头后再次发出请求。 <br>
403 Forbidden 资源不可用。<br>
404 Not Found 无法找到指定位置的资源<br>
405 Method Not Allowed 请求方法（GET、POST、HEAD、DELETE、PUT、TRACE等）对指定的资源不适用。<br>
406 Not Acceptable 指定的资源已经找到，但它的MIME类型和客户在Accpet头中所指定的不兼容<br>
407 Proxy Authentication Required 类似于401，表示客户必须先经过代理服务器的授权。<br>
408 Request Timeout 在服务器许可的等待时间内，客户一直没有发出任何请求。客户可以在以后重复同一请求。 <br>
409 Conflict 通常和PUT请求有关。由于请求和资源的当前状态相冲突，因此请求不能成功。<br>
410 Gone 所请求的文档已经不再可用，而且服务器不知道应该重定向到哪一个地址。它和404的不同在于，返回407表示文档永久地离开了指定的位置，而404表示由于未知的原因文档不可用。 <br>
411 Length Required 服务器不能处理请求，除非客户发送一个Content-Length头。 <br>
412 Precondition Failed 请求头中指定的一些前提条件失败<br>
413 Request Entity Too Large 目标文档的大小超过服务器当前愿意处理的大小。如果服务器认为自己能够稍后再处理该请求，则应该提供一个Retry-After头 <br>
414 Request URI Too Long URI太长 <br>
416 Requested Range Not Satisfiable 服务器不能满足客户在请求中指定的Range头<br>
500 Internal Server Error 服务器遇到了意料不到的情况，不能完成客户的请求<br>
501 Not Implemented 服务器不支持实现请求所需要的功能。例如，客户发出了一个服务器不支持的PUT请求 <br>
502 Bad Gateway 服务器作为网关或者代理时，为了完成请求访问下一个服务器，但该服务器返回了非法的应答 <br>
503 Service Unavailable 服务器由于维护或者负载过重未能应答。例如，Servlet可能在数据库连接池已满的情况下返回503。服务器返回503时可以提供一个Retry-After头 <br>
504 Gateway Timeout 由作为代理或网关的服务器使用，表示不能及时地从远程服务器获得应答 <br>
505 HTTP Version Not Supported 服务器不支持请求中所指明的HTTP版本</p>
<p style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">(二) XMLHttpRequest 对象方法 </p>
<p style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><br>
abort()&nbsp;&nbsp;停止当前请求<br>
getAllResponseHeaders()&nbsp;作为字符串返问完整的headers<br>
getResponseHeader("headerLabel")&nbsp;作为字符串返问单个的header标签<br>
open("method","URL"[,asyncFlag[,"userName"[,
"password"]]])&nbsp;设置未决的请求的目标 URL, 方法, 和其他参数<br>
send(content)&nbsp;发送请求<br>
setRequestHeader("label", "value")&nbsp;&nbsp;设置header并和请求一起发送</p>
<p style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">(三) XMLHttpRequest 对象属性</p>
<p style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><br>
onreadystatechange&nbsp;&nbsp;&nbsp;状态改变的事件触发器<br>
readyState&nbsp;&nbsp;&nbsp;&nbsp;对象状态(integer):<br>
&nbsp;&nbsp;&nbsp;&nbsp;0 = 未初始化<br>
&nbsp;&nbsp;&nbsp;&nbsp;1 = 读取中<br>
&nbsp;&nbsp;&nbsp;&nbsp;2 = 已读取<br>
&nbsp;&nbsp;&nbsp;&nbsp;3 = 交互中<br>
&nbsp;&nbsp;&nbsp;&nbsp;4 = 完成<br>
responseText&nbsp;&nbsp;服务器进程返回数据的文本版本<br>
responseXML&nbsp;&nbsp;服务器进程返回数据的兼容DOM的XML文档对象<br>
status&nbsp;&nbsp;&nbsp;服务器返回的状态码, 如：404 = "文件末找到" 、200 ="成功"<br>
statusText&nbsp;&nbsp;服务器返回的状态文本信息</p>
<br><img src ="http://www.blogjava.net/cgogg/aggbug/123789.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cgogg/" target="_blank">chenguo</a> 2007-06-13 10:09 <a href="http://www.blogjava.net/cgogg/articles/123789.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>AJAX  开发简略</title><link>http://www.blogjava.net/cgogg/articles/AJAX.html</link><dc:creator>chenguo</dc:creator><author>chenguo</author><pubDate>Wed, 13 Jun 2007 02:01:00 GMT</pubDate><guid>http://www.blogjava.net/cgogg/articles/AJAX.html</guid><wfw:comment>http://www.blogjava.net/cgogg/comments/122311.html</wfw:comment><comments>http://www.blogjava.net/cgogg/articles/AJAX.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cgogg/comments/commentRss/122311.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cgogg/services/trackbacks/122311.html</trackback:ping><description><![CDATA[<br>
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=121&amp;threadID=28135&amp;start=0&amp;tstart=0
<br><br>AJAX开发简略<br><br>http://blog.csdn.net/ll_feng/archive/2006/01/23/587041.aspx&nbsp;&nbsp; &nbsp;<br>一、AJAX定义&nbsp;&nbsp; &nbsp;<br>二、现状与需要解决的问题&nbsp;&nbsp; &nbsp;<br>三、为什么使用AJAX&nbsp;&nbsp; &nbsp;<br>四、谁在使用AJAX&nbsp;&nbsp; &nbsp;<br>五、用AJAX改进你的设计&nbsp;&nbsp; &nbsp;<br>例子1：数据校验<br>例子2：按需取数据—级联菜单&nbsp;&nbsp; &nbsp;<br>例子3：读取外部数据&nbsp;&nbsp; &nbsp;<br>六、AJAX的缺陷&nbsp;&nbsp; &nbsp;<br>七、AJAX开发&nbsp;&nbsp; &nbsp;<br>7.1、AJAX应用到的技术&nbsp;&nbsp; &nbsp;<br>A、XMLHttpRequest对象&nbsp;&nbsp; &nbsp;<br>B、Javascript&nbsp;&nbsp; &nbsp;<br>C、DOM&nbsp;&nbsp; &nbsp;<br>D、XML&nbsp;&nbsp; &nbsp;<br>7.2、AJAX开发框架&nbsp;&nbsp; &nbsp;<br>A、初始化对象并发出XMLHttpRequest请求&nbsp;&nbsp; &nbsp;<br>B、指定响应处理函数&nbsp;&nbsp; &nbsp;<br>C、发出HTTP请求&nbsp;&nbsp; &nbsp;<br>D、处理服务器返回的信息&nbsp;&nbsp; &nbsp;<br>E、一个初步的开发框架&nbsp;&nbsp; &nbsp;<br>7.3、简单的示例&nbsp;&nbsp; &nbsp;<br>A、数据校验&nbsp;&nbsp; &nbsp;<br>B、级联菜单&nbsp;&nbsp; &nbsp;<br>参考文章：&nbsp;&nbsp; &nbsp;<br>在使用浏览器浏览网页的时候，当页面刷新很慢的时候，你的浏览器在干什么？你的屏幕内容是什么？是的，你的浏览器在等待刷新，而你的屏幕内容是一片空白，而你在屏幕前苦苦的等待浏览器的响应。开发人员为了克服这种尴尬的局面，不得不在每一个可能需要长时间等待响应的页面上增加一个DIV，告诉用户&#8220;系统正在处理您的请求，请稍候&#8230;&#8230;&#8221;。<br>现在，有一种越来越流行越热的&#8220;老&#8221;技术，可以彻底改变这种窘迫的局面。那就是AJAX。如今，随着Gmail、Google-maps的应用和各种浏览器的支持，AJAX正逐渐吸引全世界的眼球。<br>一、AJAX定义<br>AJAX（Asynchronous JavaScript and XML）其实是多种技术的综合，包括Javascript、XHTML和CSS、DOM、XML和XSTL、XMLHttpRequest。其中：<br>使用XHTML和CSS标准化呈现，使用DOM实现动态显示和交互，使用XML和XSTL进行数据交换与处理，使用XMLHttpRequest对象进行异步数据读取，使用Javascript绑定和处理所有数据。<br>在AJAX提出之前，业界对于上述技术都只是单独的使用，没有综合使用，也是由于之前的技术需求所决定的。随着应用的广泛，AJAX也成为香饽饽了。<br>二、现状与需要解决的问题<br>传统的Web应用采用同步交互过程，这种情况下，用户首先向HTTP服务器触发一个行为或请求的呼求。反过来，服务器执行某些任务，再向发出请求的用户返回一个HTML页面。这是一种不连贯的用户体验，服务器在处理请求的时候，用户多数时间处于等待的状态，屏幕内容也是一片空白。如下图：<br>&nbsp; <br>自从采用超文本作为Web传输和呈现之后，我们都是采用这么一套传输方式。当负载比较小的时候，这并不会体现出有什么不妥。可是当负载比较大，响应时间要很长，1分钟、2分钟&#8230;&#8230;数分钟的时候，这种等待就不可忍受了。严重的，超过响应时间，服务器干脆告诉你页面不可用。另外，某些时候，我只是想改变页面一小部分的数据，那为什么我必须重新加载整个页面呢？！当软件设计越来越讲究人性化的时候，这么糟糕的用户体验简直与这种原则背道而驰。为什么老是要让用户等待服务器取数据呢？至少，我们应该减少用户等待的时间。现在，除了程序设计、编码优化和服务器调优之外，还可以采用AJAX。<br>三、为什么使用AJAX<br>与传统的Web应用不同，AJAX采用异步交互过程。AJAX在用户与服务器之间引入一个中间媒介，从而消除了网络交互过程中的处理—等待—处理—等待缺点。用户的浏览器在执行任务时即装载了AJAX引擎。AJAX引擎用JavaScript语言编写，通常藏在一个隐藏的框架中。它负责编译用户界面及与服务器之间的交互。AJAX引擎允许用户与应用软件之间的交互过程异步进行，独立于用户与网络服务器间的交流。现在，可以用Javascript调用AJAX引擎来代替产生一个HTTP的用户动作，内存中的数据编辑、页面导航、数据校验这些不需要重新载入整个页面的需求可以交给AJAX来执行。<br>&nbsp; <br>使用AJAX，可以为ISP、开发人员、终端用户带来可见的便捷：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 减轻服务器的负担。AJAX的原则是&#8220;按需取数据&#8221;，可以最大程度的减少冗余请求，和响应对服务器造成的负担。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 无刷新更新页面，减少用户心理和实际的等待时间。特别的，当要读取大量的数据的时候，不用像Reload那样出现白屏的情况，AJAX使用XMLHTTP对象发送请求并得到服务器响应，在不重新载入整个页面的情况下用Javascript操作DOM最终更新页面。所以在读取数据的过程中，用户所面对的不是白屏，是原来的页面内容（也可以加一个Loading的提示框让用户知道处于读取数据过程），只有当数据接收完毕之后才更新相应部分的内容。这种更新是瞬间的，用户几乎感觉不到。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 带来更好的用户体验。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 可以把以前一些服务器负担的工作转嫁到客户端，利用客户端闲置的能力来处理，减轻服务器和带宽的负担，节约空间和宽带租用成本。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 可以调用外部数据。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 基于标准化的并被广泛支持的技术，不需要下载插件或者小程序。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 进一步促进页面呈现和数据的分离。<br>四、谁在使用AJAX<br>在应用AJAX开发上面，Google当仁不让是表率。Orkut、Gmail、Google Groups、Google Maps、Google Suggest都应用了这项技术。Amazon的A9.com搜索引擎也采用了类似的技术。<br>微软也在积极开发更为完善的AJAX应用：它即将推出代号为Atlas的AJAX工具。Atlas的功能超越了AJAX本身，包括整合Visual Studio的调试功能。另外，新的ASP.NET控件将使客户端控件与服务器端代码的捆绑更为简便。Atlas客户脚本框架（Atlas Clent Script Framework）也使与网页及相关项目的交互更为便利。但Visual Studio 2005中并不包含此项功能。<br>微软最近宣布Atlas客户脚本框架将包含如下内容（详细资料请访问Atlas计划网站）：<br>* 一个可扩展的核心框架，它添加了JavaScript功能：如生命同时期管理、继承管理、多点传送处理器和界面管理。<br>* 一个常见功能的基本类库，有丰富的字符串处理、计时器和运行任务。<br>* 为HTML附加动态行为的用户界面框架。<br>* 一组用来简化服务器连通和网络访问的网络堆栈。<br>* 一组丰富的用户界面开发控件，如：自动完成的文本框、动画和拖放。<br>* 处理浏览器脚本行为差异的浏览器兼容层面。<br>典型的，微软将AJAX技术应用在MSN Space上面。很多人一直都对MS Space服务感到很奇怪，当提交回复评论以后，浏览器会暂时停顿一下，然后在无刷新的情况下把我提交的评论显示出来。这个就是应用了AJAX的效果。试想，如果添加一个评论就要重新刷新整个页面，那可真费事。<br>目前，AJAX应用最普遍的领域是GIS-Map方面。GIS的区域搜索强调快速响应，AJAX的特点正好符合这种需求。<br>五、用AJAX改进你的设计<br>AJAX虽然可以实现无刷新更新页面内容，但是也不是什么地方都可以用，主要应用在交互较多、频繁读数据、数据分类良好的Web应用中。现在，让我们举两个例子，看看如何用AJAX改进你的设计。<br>例子1：数据校验<br>在输入form表单内容的时候，我们通常需要确保数据的唯一性。因此，常常在页面上提供&#8220;唯一性校验&#8221;按钮，让用户点击，打开一个校验小窗口；或者等form提交到服务器端，由服务器判断后在返回相应的校验信息。前者，window.open操作本来就是比较耗费资源的，通常由window. showModalDialog代替，即使这样也要弹出一个对话框；后者，需要把整个页面提交到服务器并由服务器判断校验，这个过程不仅时间长而且加重了服务器负担。而使用AJAX，这个校验请求可以由XMLHttpRequest对象发出，整个过程不需要弹出新窗口，也不需要将整个页面提交到服务器，快速又不加重服务器负担。<br>例子2：按需取数据—级联菜单<br>以前，为了避免每次对菜单的操作引起的重载页面，不采用每次调用后台的方式，而是一次性将级联菜单的所有数据全部读取出来并写入数组，然后根据用户的操作用JavaScript来控制它的子集项目的呈现，这样虽然解决了操作响应速度、不重载页面以及避免向服务器频繁发送请求的问题，但是如果用户不对菜单进行操作或只对菜单中的一部分进行操作的话，那读取的数据中的一部分就会成为冗余数据而浪费用户的资源，特别是在菜单结构复杂、数据量大的情况下（比如菜单有很多级、每一级菜又有上百个项目），这种弊端就更为突出。<br>现在应用AJAX，在初始化页面时我们只读出它的第一级的所有数据并显示，在用户操作一级菜单其中一项时，会通过Ajax向后台请求当前一级项目所属的二级子菜单的所有数据，如果再继续请求已经呈现的二级菜单中的一项时，再向后面请求所操作二级菜单项对应的所有三级菜单的所有数据，以此类推&#8230;&#8230;这样，用什么就取什么、用多少就取多少，就不会有数据的冗余和浪费，减少了数据下载总量，而且更新页面时不用重载全部内容，只更新需要更新的那部分即可，相对于后台处理并重载的方式缩短了用户等待时间，也把对资源的浪费降到最低。<br>例子3：读取外部数据<br>AJAX可以调用外部数据，因此，可以对一些开发的数据比如XML文档、RSS文档进行二次加工，实现数据整合或者开发应用程序。<br>六、AJAX的缺陷<br>AJAX不是完美的技术。使用AJAX，它的一些缺陷不得不权衡一下：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AJAX大量使用了Javascript和AJAX引擎，而这个取决于浏览器的支持。IE5.0及以上、Mozilla1.0、NetScape7及以上版本才支持，Mozilla虽然也支持AJAX，但是提供XMLHttpRequest的方式不一样。所以，使用AJAX的程序必须测试针对各个浏览器的兼容性。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AJAX更新页面内容的时候并没有刷新整个页面，因此，网页的后退功能是失效的；有的用户还经常搞不清楚现在的数据是旧的还是已经更新过的。这个就需要在明显位置提醒用户&#8220;数据已更新&#8221;。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 对流媒体的支持没有FLASH、Java Applet好。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 一些手持设备（如手机、PDA等）现在还不能很好的支持Ajax。<br>七、AJAX开发<br>到这里，已经可以清楚的知道AJAX是什么，AJAX能做什么，AJAX什么地方不好。如果你觉得AJAX真的能给你的开发工作带来改进的话，那么继续看看怎么使用AJAX吧。<br>7.1、AJAX应用到的技术<br>AJAX涉及到的7项技术中，个人认为Javascript、XMLHttpRequest、DOM、XML比较有用。<br>A、XMLHttpRequest对象<br>XMLHttpRequest是XMLHTTP组件的对象，通过这个对象，AJAX可以像桌面应用程序一样只同服务器进行数据层面的交换，而不用每次都刷新界面，也不用每次将数据处理的工作都交给服务器来做；这样既减轻了服务器负担又加快了响应速度、缩短了用户等待的时间。<br>IE5.0开始，开发人员可以在Web页面内部使用XMLHTTP ActiveX组件扩展自身的功能，不用从当前的Web页面导航就可以直接传输数据到服务器或者从服务器接收数据。,Mozilla1.0以及NetScape7则是创建继承XML的代理类XMLHttpRequest；对于大多数情况，XMLHttpRequest对象和XMLHTTP组件很相似，方法和属性类似，只是部分属性不同。<br>XMLHttpRequest对象初始化：<br>&nbsp;XMLHttpRequest对象的方法：<br>方法&nbsp;&nbsp;&nbsp; 描述<br>abort()&nbsp;&nbsp;&nbsp; 停止当前请求<br>getAllResponseHeaders()&nbsp;&nbsp;&nbsp; 作为字符串返回完整的headers<br>getResponseHeader("headerLabel")&nbsp;&nbsp;&nbsp; 作为字符串返回单个的header标签<br>open("method","URL"[,asyncFlag[,"userName"[, "password"]]])&nbsp;&nbsp;&nbsp; 设置未决的请求的目标 URL，方法，和其他参数<br>send(content)&nbsp;&nbsp;&nbsp; 发送请求<br>setRequestHeader("label", "value")&nbsp;&nbsp;&nbsp; 设置header并和请求一起发送<br>XMLHttpRequest对象的属性：<br>属性&nbsp;&nbsp;&nbsp; 描述<br>onreadystatechange&nbsp;&nbsp;&nbsp; 状态改变的事件触发器<br>readyState&nbsp;&nbsp;&nbsp; 对象状态(integer):<br>0 = 未初始化<br>1 = 读取中<br>2 = 已读取<br>3 = 交互中<br>4 = 完成<br>responseText&nbsp;&nbsp;&nbsp; 服务器进程返回数据的文本版本<br>responseXML&nbsp;&nbsp;&nbsp; 服务器进程返回数据的兼容DOM的XML文档对象<br>status&nbsp;&nbsp;&nbsp; 服务器返回的状态码, 如：404 = "文件未找到" 、200 ="成功"<br>statusText&nbsp;&nbsp;&nbsp; 服务器返回的状态文本信息<br>B、Javascript<br>Javascript一直被定位为客户端的脚本语言，应用最多的地方是表单数据的校验。现在，可以通过Javascript操作XMLHttpRequest，来跟数据库打交道。<br>C、DOM<br>DOM（Document Object Model）是提供给HTML和XML使用的一组API，提供了文件的表述结构，并可以利用它改变其中的内容和可见物。脚本语言通过DOM才可以跟页面进行交互。Web开发人员可操作及建立文件的属性、方法以及事件都以对象来展现。比如，document就代表页面对象本身。<br>D、XML<br>通过XML（Extensible Markup Language），可以规范的定义结构化数据，是网上传输的数据和文档符合统一的标准。用XML表述的数据和文档，可以很容易的让所有程序共享。<br>7.2、AJAX开发框架<br>这里，我们通过一步步的解析，来形成一个发送和接收XMLHttpRequest请求的程序框架。AJAX实质上也是遵循Request/Server模式，所以这个框架基本的流程也是：对象初始化&#224;发送请求&#224;服务器接收&#224;服务器返回&#224;客户端接收&#224;修改客户端页面内容。只不过这个过程是异步的。<br>A、初始化对象并发出XMLHttpRequest请求<br>为了让Javascript可以向服务器发送HTTP请求，必须使用XMLHttpRequest对象。使用之前，要先将XMLHttpRequest对象实例化。之前说过，各个浏览器对这个实例化过程实现不同。IE以ActiveX控件的形式提供，而Mozilla等浏览器则直接以XMLHttpRequest类的形式提供。为了让编写的程序能够跨浏览器运行，要这样写：<br>if (window.XMLHttpRequest) { // Mozilla, Safari, ...<br>&nbsp;&nbsp;&nbsp; http_request = new XMLHttpRequest();<br>} else if (window.ActiveXObject) { // IE<br>&nbsp;&nbsp;&nbsp; http_request = new ActiveXObject("Microsoft.XMLHTTP");<br>}<br>有些版本的Mozilla浏览器处理服务器返回的未包含XML mime-type头部信息的内容时会出错。因此，要确保返回的内容包含text/xml信息。<br>http_request = new XMLHttpRequest();<br>http_request.overrideMimeType('text/xml');<br>B、指定响应处理函数<br>接下来要指定当服务器返回信息时客户端的处理方式。只要将相应的处理函数名称赋给XMLHttpRequest对象的onreadystatechange属性就可以了。比如：<br>http_request.onreadystatechange = processRequest;<br>需要指出的时，这个函数名称不加括号，不指定参数。也可以用Javascript即时定义函数的方式定义响应函数。比如：<br>http_request.onreadystatechange = function() {<br>};<br>C、发出HTTP请求<br>指定响应处理函数之后，就可以向服务器发出HTTP请求了。这一步调用XMLHttpRequest对象的open和send方法。<br>http_request.open('GET', 'http://www.example.org/some.file', true);<br>http_request.send(null);<br>open的第一个参数是HTTP请求的方法，为Get、Post或者Head。<br>对于 GET 请求，使用 null 值或空字符串&#8220;&#8221;。 <br>POST 请求包含一个带有表单数据的字符串参数。它们也要求在请求的标题中设置 Content-Type。<br><br>第二个参数是目标URL。基于安全考虑，这个URL只能是同网域的，否则会提示&#8220;没有权限&#8221;的错误。这个URL可以是任何的URL，包括需要服务器解释执行的页面，不仅仅是静态页面。<br>第三个参数只是指定在等待服务器返回信息的时间内是否继续执行下面的代码。如果为True，则不会继续执行，直到服务器返回信息。默认为True。<br>按照顺序，open调用完毕之后要调用send方法。send的参数如果是以Post方式发出的话，可以是任何想传给服务器的内容。<br>不过，跟form一样，如果要传文件给服务器，必须先调用setRequestHeader方法，修改MIME类别。如下：<br>http_request.setRequestHeader(&#8220;Content-Type&#8221;,&#8221;application/x-www-form-urlencoded&#8221;);<br>req.send("name=scott&amp;email=stiger@foocorp.com");<br>D、处理服务器返回的信息<br>在第二步我们已经指定了响应处理函数，这一步，来看看这个响应处理函数都应该做什么。<br>首先，它要检查XMLHttpRequest对象的readyState值，判断请求目前的状态。参照前文的属性表可以知道，readyState值为4的时候，代表服务器已经传回所有的信息，可以开始处理信息并更新页面内容了。如下：<br>if (http_request.readyState == 4) {<br>&nbsp;&nbsp;&nbsp; // 信息已经返回，可以开始处理<br>} else {<br>&nbsp;&nbsp;&nbsp; // 信息还没有返回，等待<br>}<br>服务器返回信息后，还需要判断返回的HTTP状态码，确定返回的页面没有错误。所有的状态码都可以在W3C的官方网站上查到。其中，200代表页面正常。<br>if (http_request.status == 200) {<br>&nbsp;&nbsp;&nbsp; // 页面正常，可以开始处理信息<br>} else {<br>&nbsp;&nbsp;&nbsp; // 页面有问题<br>}<br>XMLHttpRequest对成功返回的信息有两种处理方式：<br>responseText：将传回的信息当字符串使用；<br>responseXML：将传回的信息当XML文档使用，可以用DOM处理。<br><br>function processXMLResponse() {&nbsp; if (req.readyState == 4) { if (request.status != 200) {// Process the XML response&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp; } }<br>XML 响应的处理是通过使用标准 Javascript DOM 方法完成的。例如，要从输入的 XML 流中抽取员工姓名： <br>&lt;employee&gt; Chris&nbsp; &lt;/employee&gt;<br>您可以使用以下代码： <br>var name = req.responseXML.getElementsByTagName("employee")[0];<br>分析更为复杂的 XML 会使用如下代码迭代元素： <br><br><br><br>for (i=0;i&lt;elements.length;i++) {<br>for (j=0;j&lt;elements[i].childNodes.length;j++) {<br>var ElementData = elements[i].childNodes[j].firstChild.nodeValue;&nbsp;&nbsp; } <br>&nbsp;}<br>E、一个初步的开发框架<br>总结上面的步骤，我们整理出一个初步的可用的开发框架，供以后调用；这里，将服务器返回的信息用window.alert以字符串的形式显示出来：<br>&lt;script language="javascript"&gt;<br>&nbsp;&nbsp;&nbsp; var http_request = false;<br>&nbsp;&nbsp;&nbsp; function send_request(url) {//初始化、指定处理函数、发送请求的函数<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; http_request = false;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; //开始初始化XMLHttpRequest对象<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if(window.XMLHttpRequest) { //Mozilla 浏览器<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; http_request = new XMLHttpRequest();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (http_request.overrideMimeType) {//设置MiME类别<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; http_request.overrideMimeType("text/xml");<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; else if (window.ActiveXObject) { // IE浏览器<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; try {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; http_request = new ActiveXObject("Msxml2.XMLHTTP");<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } catch (e) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; try {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; http_request = new ActiveXObject("Microsoft.XMLHTTP");<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } catch (e) {}<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (!http_request) { // 异常，创建对象实例失败<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; window.alert("不能创建XMLHttpRequest对象实例.");<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return false;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; http_request.onreadystatechange = processRequest;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // 确定发送请求的方式和URL以及是否同步执行下段代码<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; http_request.open("GET", url, true);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; http_request.send(null);<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; // 处理返回信息的函数<br>&nbsp;&nbsp;&nbsp; function processRequest() {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (http_request.readyState == 4) { // 判断对象状态<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (http_request.status == 200) { // 信息已经成功返回，开始处理信息<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert(http_request.responseText);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else { //页面不正常<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert("您所请求的页面有异常。");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; }<br>&lt;/script&gt;<br><br>&nbsp;7.3、简单的示例<br>接下来，我们利用上面的开发框架来做两个简单的应用。<br>A、数据校验<br>在用户注册的表单中，经常碰到要检验待注册的用户名是否唯一。传统的做法是采用window.open的弹出窗口，或者window. showModalDialog的对话框。不过，这两个都需要打开窗口。采用AJAX后，采用异步方式直接将参数提交到服务器，用window.alert将服务器返回的校验信息显示出来。代码如下：<br>在之间增加一段form表单代码：<br>&nbsp;<br>在开发框架的基础上再增加一个调用函数：<br>function userCheck() {<br>&nbsp;&nbsp;&nbsp; var f = document.form1;<br>&nbsp;&nbsp;&nbsp; var username = f.username.value;<br>&nbsp;&nbsp;&nbsp; if(username=="") {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; window.alert("用户名不能为空。");<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; f.username.focus();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return false;<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; else {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; send_request('sample1_2.jsp?username='+username);<br>&nbsp;&nbsp;&nbsp; }<br>}<br>看看sample1_2.jsp做了什么：<br>&lt;%@ page contentType="text/html; charset=gb2312" errorPage="" %&gt;<br>&lt;%<br>String username = request.getParameter("username");<br>if("educhina".equals(username)) out.print("用户名已经被注册，请更换一个用户名。");<br>else out.print("用户名尚未被使用，您可以继续。");<br>%&gt;<br>运行一下，嗯，没有弹出窗口，没有页面刷新，跟预想的效果一样。如果需要的话，可以在sample1_2.jsp中实现更复杂的功能。最后，只要将反馈信息打印出来就可以了。<br>&nbsp; <br>B、级联菜单<br>我们在第五部分提到利用AJAX改进级联菜单的设计。接下来，我们就演示一下如何&#8220;按需取数据&#8221;。<br>首先，在&lt;body&gt;&lt;/body&gt;中间增加如下HTML代码：<br>&lt;table width="200" border="0" cellspacing="0" cellpadding="0"&gt;<br>&nbsp;&nbsp;&nbsp; &lt;tr&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td height="20"&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;a href="javascript:void(0)" onClick="showRoles('pos_1')"&gt;经理室&lt;/a&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;/td&gt;<br>&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br>&nbsp;&nbsp;&nbsp; &lt;tr style="display:none"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td height="20" id="pos_1"&gt;&amp;nbsp;&lt;/td&gt;<br>&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br>&nbsp;&nbsp;&nbsp; &lt;tr&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td height="20"&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;a href="javascript:void(0)" onClick="showRoles('pos_2')"&gt;开发部&lt;/a&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;/td&gt;<br>&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br>&nbsp;&nbsp;&nbsp; &lt;tr style="display:none "&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td id="pos_2" height="20"&gt;&amp;nbsp;&lt;/td&gt;<br>&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br>&lt;/table&gt;<br>在框架的基础上增加一个响应函数showRoles(obj)：<br>//显示部门下的岗位<br>function showRoles(obj) {<br>&nbsp;&nbsp;&nbsp; document.getElementById(obj).parentNode.style.display = "";<br>&nbsp;&nbsp;&nbsp; document.getElementById(obj).innerHTML = "正在读取数据..."<br>&nbsp;&nbsp;&nbsp; currentPos = obj;<br>&nbsp;&nbsp;&nbsp; send_request("sample2_2.jsp?playPos="+obj);<br>}<br>修改框架的processRequest函数：<br>// 处理返回信息的函数<br>function processRequest() {<br>&nbsp; if (http_request.readyState == 4) { // 判断对象状态<br>&nbsp;&nbsp;&nbsp; if (http_request.status == 200) { // 信息已经成功返回，开始处理信息<br>&nbsp;&nbsp;&nbsp; document.getElementById(currentPos).innerHTML = http_request.responseText;<br>&nbsp;&nbsp;&nbsp; } else { //页面不正常<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert("您所请求的页面有异常。");<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp; }<br>}<br>最后就是smaple2_2.jsp了：<br>&lt;%@ page contentType="text/html; charset=gb2312" errorPage="" %&gt;<br>&lt;%<br>String playPos = request.getParameter("playPos");<br>if("pos_1".equals(playPos)) <br>out.print("&amp;nbsp;&amp;nbsp;总经理&lt;br&gt;&amp;nbsp;&amp;nbsp;副总经理");<br>else if("pos_2".equals(playPos)) <br>out.println("&amp;nbsp;&amp;nbsp;总工程师&lt;br&gt;&amp;nbsp;&amp;nbsp;软件工程师");<br>%&gt;<br>运行一下看看效果：<br>&nbsp; <br>参考文章：<br>作者：&nbsp;&nbsp;&nbsp; fanscial&nbsp;&nbsp;&nbsp; 标题：&nbsp;&nbsp;&nbsp; 《AJAX简介》<br>网址：&nbsp;&nbsp;&nbsp; http://www.blogjava.net/fanscial/archive/2005/08/31/11628.html<br><br>作者：&nbsp;&nbsp;&nbsp; Amour GUO&nbsp;&nbsp;&nbsp; 标题：&nbsp;&nbsp;&nbsp; 《AJAX内部交流文档》<br>网址：&nbsp;&nbsp;&nbsp; http://www.dragonson.com/doc/ajax.html<br><br>作者：&nbsp;&nbsp;&nbsp; MoztwWiki&nbsp;&nbsp;&nbsp; 标题：&nbsp;&nbsp;&nbsp; 《AJAX上手篇》<br>网址：&nbsp;&nbsp;&nbsp; http://wiki.moztw.org/index.php/AJAX_%E4%B8%8A%E6%89%8B%E7%AF%87<br><br>&nbsp;<br><br><br><br>Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=587041<br><br><br>&nbsp;<br> <img src ="http://www.blogjava.net/cgogg/aggbug/122311.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cgogg/" target="_blank">chenguo</a> 2007-06-13 10:01 <a href="http://www.blogjava.net/cgogg/articles/AJAX.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>AjAX核心大纲</title><link>http://www.blogjava.net/cgogg/articles/123783.html</link><dc:creator>chenguo</dc:creator><author>chenguo</author><pubDate>Wed, 13 Jun 2007 01:58:00 GMT</pubDate><guid>http://www.blogjava.net/cgogg/articles/123783.html</guid><wfw:comment>http://www.blogjava.net/cgogg/comments/123783.html</wfw:comment><comments>http://www.blogjava.net/cgogg/articles/123783.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cgogg/comments/commentRss/123783.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cgogg/services/trackbacks/123783.html</trackback:ping><description><![CDATA[Ajax是一项综合的技术,Ajax的使用过程,首先是在HTML控件中添加相应的事件触发属性,使其具备事件触发能力;其次是编写事件处理函数,并在这
个函数中初始化XMLHttpRequest对象,指定响应处理程序,创建http请求,设置必要的http请求头信息,向服务器发送所创建的http请
求;最后才是创建响应处理函数,在对http请求状态进行判断的基础上作出既定的业务处理事务。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (一)事件处理函数，按照以下顺序处理下列事务：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a) 初始化XMLHttpRequest对象；<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 实现代码如下:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(widow.XMLHttpRequest) {//Mozilla,Safari,.......<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http_request= new XMLHttpRequest();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else if(window.ActiveXObject) {//IE<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http_request= new ActiveXObject("Microsoft.XMLHTTP");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; window.alert("浏览器没有实现XMLHttpRequest 组件对象!");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b) 设置XMLHttpRequest对象的onreadystatechange 属性,指定服务器返回响应数据时要调用的回调函数， 即指定响应处理函数；<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 实现代码如下:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http_request.onreadystatechange=processRequest;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; c) 调用XMLHttpRequest对象的open方法,创建http请求；<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 实现代码如下:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http_request.open("GET", "http://www.example.org/some.file", true);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; d) 调用XMLHttpRequest对象的setRequestHeader等方法,设置必要的http请求头信息；<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 实现代码如下:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http_request.setRequestHeader("Content-Type",application/x-www-form-urlencoded);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e) 调用XMLHttpRequest对象的send方法,发送之前创建的http请求；<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 实现代码如下:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http_request.send(null);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; f)&nbsp; 根据XMLHttpRequest对象的open方法参数,决定是否等待服务器返回响应数据.<br>&nbsp;&nbsp;&nbsp;&nbsp; (二)回调函数(响应处理函数)执行以下事务：<br>　　　　aa) 判断http请求的状态,并作相应处理;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bb) 调用XMLHttpRequest对象的responseXML or responseText方法,将服务器返回的响应数据赋予Javascript变量或对象;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cc) 使用DOM或其它方式解析服务器返回的响应数据，保存在缓存变量或数组中；<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dd) 使用DOM解析HTML文档，定位目标HTML文档节点;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ee)&nbsp; 使用解析完毕的服务器返回的响应数据,更新上一步解答分析HTML文档节点的属性值或内容,从而更新HTML文档页面内容.<br><br><br>Ajax控件和类库简析<br><br>【导读】Ajax控件和类库现在真的太多了，本人对Ajax的观点:Ajax和服务器端技术毫不相关,DOM模型是Ajax最本质的技术,要学好JavaScript，在使用Ajax控件前理解它们的实现&#8230;&#8230;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br><br>Ajax控件和类库现在真的太多了，不知不觉中增加了Ajax的神秘性和复杂性，谈谈本人对Ajax的观点，希望能让大家对Ajax有一个本质的认识。<br><br>观点一：Ajax和服务器端技术毫不相关<br><br>严
格的说，与传统web开发相比，Ajax是完完全全的客户端技术。由于很多控件封装了客户端和服务器端的通信过程，因此很多问题也因通信而起。事实上，不
论何种Ajax技术，服务器端都是返回的一个纯文本流，再由客户端来处理这个文本。这段文本可以是xml格式，也可以是一个Html片段，也可以是一段
JavaScript脚本，或者仅是一个字符串。服务器端仅仅是作为一个数据接口，客户端使用XMLHttpRequest对象来请求这个页面，服务器端
在页面内写入结果文本，这个过程和普通的web开发没有任何区别。所不同的只是，客户端在异步获取结果后，不是直接显示在页面，而是由客户端的
Javascript脚本处理后再显示在页面。至于各种控件所谓的能返回DataSet对象，Date对象，或者其他的数据类型，都是封装了这个处理过程
的结果。<br><br>观点二：DOM模型是Ajax最本质的技术<br><br>之所以没有把XMLHttpRequest列为最本质的技术，因为本
人觉得它实在是太简单了，它只是可以让浏览器在后台请求一个页面，并将其内容交给JavaScript处理。真正的核心应该是：DOM模型，即文档对象模
型。在DOM模型里，Html标记都被认为是一个对象，例如：div对象，table对象等等。DOM模型就规定了这些对象所具有的属性、方法和事件。通
过这些性质，可以对一个已经显示于浏览器的页面进行内容的修改，例如增加节点、修改节点位置，删除节点等等。而不仅仅是一个innerHTML属性这么简
单，虽然这是一个很有用的属性。<br><br>观点三：在使用Ajax控件前理解它们的实现<br><br>使用Ajax控件的确可以提高效率，但如果
你空中楼阁般使用控件，那就得不偿失了。从一个控件换到另外一个控件又会有一个漫长的学习曲线。所以应该从底层了解其，况且Ajax实在不是什么高深的技
术。其实任何东西的最底层其实都是简单的，但如果封装了这些底层的东西，事情会变得复杂和难以理解。以Asp.net为例，它的定制特性可以使得只要在方
法前加上[ajax
method]类似这样的标志就可以称为一个异步方法，相信这使得Asp.net的Ajax开发显得更加&#8220;高效&#8221;或者是&#8220;神秘&#8221;，而更多的事情则被封装
了。同样记住一条，任何对服务器端的请求仅仅是返回纯文本，我们不一定要依赖于封装好的处理过程，而完全可以自己来实现。<br><br>观点四：学好JavaScript<br><br>在
大多数人看来，JavaScript总不是那么一种正规的语言，随便copy一段就碰巧能运行，学过c之类的人，一看也能看懂，而且在浏览器中常常有脚本
错误提示，所以潜意识觉得总不能付之以大任。事实上，要学好Ajax，这就完全是一种错误的看法。javascript作为一种脚本语言，其语法的确不是
很严格，但并不妨碍其完成诸多复杂的任务，没有JavaScript，就没有Ajax。所以本人强烈建议，学Ajax前，一定要好好研究一番
JavaScript，一般来讲，如果能顺利看懂prototype框架的代码（如：prototype-1.3.1.js），你的JavaScript
水平就基本过关了。同时对DOM模型也可以算有一个基本的了解。<br><br>观点五：Ajax点缀：CSS<br><br>用JavaScript控
制CSS其实很简单，基本上每个DOM对象都有一个style对象，只要把css属性里的"-"去掉，并让随后的字母变为大写就可以作为属性使用了，例
如：element.style.backgroundColor="#f00";在css是：选择符 {background-color:#f00}
<br><img src ="http://www.blogjava.net/cgogg/aggbug/123783.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cgogg/" target="_blank">chenguo</a> 2007-06-13 09:58 <a href="http://www.blogjava.net/cgogg/articles/123783.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>