JS调用Webservice,并处理返回的XML数据
如果在系统中只需要用到一个很简单的无刷新功能,那么没有必要使用庞大的AJAX框架,直接用JS调用Webservice来实现即可:
下面是JS代码:
1 var productid = new Array();//产品ID
2 var PLprice = new Array();//最低价
3 var PHprice = new Array();//最高价
4 var pname = new Array();//产品名称
5
6 function MaxMin_OnClick(oLnk, sContentID)
7 {
8 var oContent = document.getElementById(sContentID);
9 if ( oContent != null )
10 {
11 var oBtn = oLnk.childNodes[0];
12 var sCurrentPath = oBtn.src.toLowerCase().substr(0,oBtn.src.lastIndexOf('/'));
13 var sCurrentFile = oBtn.src.toLowerCase().substr(oBtn.src.lastIndexOf('/'));
14 var sMaxIcon = '/max.gif';
15 var sMinIcon = '/min.gif';
16 if ( sCurrentFile == sMaxIcon )
17 {
18 oBtn.src = sCurrentPath+sMinIcon;
19 oContent.style.display = '';
20 oBtn.title = 'Minimize';
21 }
22 else
23 {
24 oBtn.src = sCurrentPath+sMaxIcon;
25 oContent.style.display = 'none';
26 oBtn.title = 'Maximize';
27 }
28 }
29 return false;
30 }
31
32 function GetProductPrice(tableID,MarketId)
33 {
34 var productCount = (document.getElementById(tableID).getElementsByTagName("input").length-1)/3;
35 for(var i=0;i<productCount;i++)
36 {
37 productid[i] = document.getElementsByName('PID'+MarketId)[i].value;
38 PLprice[i] = document.getElementsByName('PLprice'+MarketId)[i].value;
39 PHprice[i] = document.getElementsByName('PHprice'+MarketId)[i].value;
40 pname[i] = document.getElementById(productid[i]).innerText;
41 }
42 //var marketid = document.getElementsByTagName("fieldset")[0].id;
43 var URL = "WebService/ProductOrderWebService.asmx/CreatePrice?productid="+productid+"&PLprice="+PLprice+"&PHprice="+PHprice+"&marketid="+MarketId;
44 var browser = navigator.appName;
45 var xmlhttp;
46 var xmlDoc;
47 if(browser == "Microsoft Internet Explorer"){ //IE浏览器
48 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
49 xmlDoc = new ActiveXObject('Microsoft.XMLDOM'); //创建空的XML文档对象
50 }
51 else{ //其它浏览器
52 xmlhttp = new XMLHttpRequest();
53 document.implementation.createDocument("","",null); //创建空的XML文档对象
54 }
55 xmlhttp.open("GET",URL, false);
56 xmlhttp.send(null);
57 var res = xmlhttp.ResponseText;
58 xmlDoc.async = false; //关闭异步加载,确保在文档完整加载之前,不会继续执行脚本
59 xmlDoc.load(xmlhttp.responseBody); //加载XML文档
60 var aRowIds = xmlDoc.selectSingleNode("//string").text; //读取string节点内容
61 if(aRowIds.match('^[index.aspx]\S*')==null)
62 alert(aRowIds);
63 else
64 top.location.href = aRowIds;
65 }
66
另外,httprequest默认不支持GET方式,需要在配置文件里面修改才行
2 var PLprice = new Array();//最低价
3 var PHprice = new Array();//最高价
4 var pname = new Array();//产品名称
5
6 function MaxMin_OnClick(oLnk, sContentID)
7 {
8 var oContent = document.getElementById(sContentID);
9 if ( oContent != null )
10 {
11 var oBtn = oLnk.childNodes[0];
12 var sCurrentPath = oBtn.src.toLowerCase().substr(0,oBtn.src.lastIndexOf('/'));
13 var sCurrentFile = oBtn.src.toLowerCase().substr(oBtn.src.lastIndexOf('/'));
14 var sMaxIcon = '/max.gif';
15 var sMinIcon = '/min.gif';
16 if ( sCurrentFile == sMaxIcon )
17 {
18 oBtn.src = sCurrentPath+sMinIcon;
19 oContent.style.display = '';
20 oBtn.title = 'Minimize';
21 }
22 else
23 {
24 oBtn.src = sCurrentPath+sMaxIcon;
25 oContent.style.display = 'none';
26 oBtn.title = 'Maximize';
27 }
28 }
29 return false;
30 }
31
32 function GetProductPrice(tableID,MarketId)
33 {
34 var productCount = (document.getElementById(tableID).getElementsByTagName("input").length-1)/3;
35 for(var i=0;i<productCount;i++)
36 {
37 productid[i] = document.getElementsByName('PID'+MarketId)[i].value;
38 PLprice[i] = document.getElementsByName('PLprice'+MarketId)[i].value;
39 PHprice[i] = document.getElementsByName('PHprice'+MarketId)[i].value;
40 pname[i] = document.getElementById(productid[i]).innerText;
41 }
42 //var marketid = document.getElementsByTagName("fieldset")[0].id;
43 var URL = "WebService/ProductOrderWebService.asmx/CreatePrice?productid="+productid+"&PLprice="+PLprice+"&PHprice="+PHprice+"&marketid="+MarketId;
44 var browser = navigator.appName;
45 var xmlhttp;
46 var xmlDoc;
47 if(browser == "Microsoft Internet Explorer"){ //IE浏览器
48 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
49 xmlDoc = new ActiveXObject('Microsoft.XMLDOM'); //创建空的XML文档对象
50 }
51 else{ //其它浏览器
52 xmlhttp = new XMLHttpRequest();
53 document.implementation.createDocument("","",null); //创建空的XML文档对象
54 }
55 xmlhttp.open("GET",URL, false);
56 xmlhttp.send(null);
57 var res = xmlhttp.ResponseText;
58 xmlDoc.async = false; //关闭异步加载,确保在文档完整加载之前,不会继续执行脚本
59 xmlDoc.load(xmlhttp.responseBody); //加载XML文档
60 var aRowIds = xmlDoc.selectSingleNode("//string").text; //读取string节点内容
61 if(aRowIds.match('^[index.aspx]\S*')==null)
62 alert(aRowIds);
63 else
64 top.location.href = aRowIds;
65 }
66


[WebMethod(

}
浙公网安备 33010602011771号