ajax 初步的总结;
创建xmlhttp对象
var xmlhttp=ActiveXObject("MSXML2.xmlhttp")
创建xml对象
var oDoc=ActivexObject("MSCMLDOMDocument")
接着是使用xmlhttp.open的方法,其中open的方法有三个参数,第一个参数是请求方式,第二个参数是uri,第三个参数是是否为异步。
接着使用httpxml的第二个方法,名称为send方法,基本发送回服务器的都是null
接着我们会接受到服务器发送到客户端的数据使用的对象依然是
result=xmlhttp.responseText;
之后我们会用到odoc这个对象,他有一个loadxml方法,把从服务器上返回来的数据转换成xml
也就是odoc.loadxml(result)
之后我没会找到这个xml的借点返回来的数据,这里当然要用到循环了啊
首先我们先把 var items=odoc.selectnodes("//table");
这就可以知道返回来的table下面的所以借点的值了
for(int i=0;i<items.length-1;i++)
{
//在这里面可以查到节点下面的值
var largecontent=items[i].childnodes[0].text;这里是取到xml中的第一个值
}
下面写一个例子给大家看看:
这个例子是无刷新dropdownlist
default1.aspx 为
<asp:Dropdowlist runat="server" id="dropdowlist1"/>
<asp:Dropdowlist runat="server" id="dropdowlist2"/>
页面上就放俩个dropdowlist
接着我就写这个页面的ajax的内容了。
var xmlhttp=ActiveXObject("MSXML2.XMLhttp");
var odoc=ActiveXobject("MSXML2.DOMDocument");
xmlhttp.open(post,"default2.aspx",true);
xmlhttp.send();
reslut=xmlhttp.responseText;
odoc.LoadXml(reslut);
var items=odoc.selectNodes("//Table");
var drop1=document.getelementbyid("dropdowlist1");
//删除所以项
for(int i=10;i<drop1.options.length-1;i++)
{
drop1.remove(i);
}
for(int i=0;i<items.length;i++)
{
var largquest=items[i].childnodes[0].text;
var largquestid=items[i].childnodes[1].text;
var newoptions=document.CreateElement("OPTION");
newoptions.text=largquest;
newoptions.vaule=largquestid;
drop1.options.add(newoptions);
}
这就完成了一个ajax请求,填充一个dropdownlist
接着我们该看一看后台了,也就是后台代码了
我们是利用System.xml.xmltextwrite xml =new xmltextwrite(response.outputstream,null);这个方法写入前台的
在这之前我们定义一个dateset数据集合
dateset有一个writexml这个方法,我这也是第一次听说 ds.writexml(xml);
然后输出xml.flush();
这样就把他发送到客户端了,最后把这个关闭就ok了。
xml.colse();
response.end();
最后记住一点,当想从cs的代码,写入到客户端脚本时可以这样写,如果说我想把dropdowlist2加入一个change的方法,
我就可以这样写dropdowlist2.attributes.add("change","load1(this.dropdowlist2.options[dropdowlist1.selectindex].value")