今天才现用现学WebService,问题太弱还请见谅!
1. 我知道WebService中一般用[WebMethod]声明的函数在页面上都显示为链接状
请问能不能在WebService的首页中加上单选按钮,点击submit提交。然后根据单选按钮的选择再显示[WebMethod]声明的这种函数....
2. 如果WebService里要传递很多参数,很简单,什么姓名地址之类的,但是可能数量有点多。
我需要想要达到的效果:应用程序调用WebService传入很多参数,WebService把这些参数传到某个server...........
WebService的函数有参数的时候,点击该函数的链接会显示让输入参数的,那我这种纯是传值的种该怎么设置啊??难道写n个函数一个个传值?
完全迷茫中,网上也找不到什么资料,还请了解的大侠指点救命啊!偶要急死了。。。(┬_┬)
发个Ajax例子解析一下:
HTML:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<script type="text/javascript">
var xmlhttp;
function createXmlhttp(){
if(window.XMLHttpRequest){
xmlhttp = new XMLHttpRequest();
}
else if(window.ActiveXObject){
try{
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
}
if(!xmlhttp){
window.alert("Your broswer not support XMLHttpRequest!");
}
return xmlhttp;
}
function SumIt()
{
createXmlhttp();
var url="Service.asmx/Sum"; //调用WEB服务的一个SUM方法
var queryString=createQueryString(); //参数在这里拼接,你可以JS获取单选按钮的值,传进去
xmlhttp.open("POST",url,true);
xmlhttp.onreadystatechange=handleStateChange; //Ajax回发
xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded;");
xmlhttp.send(queryString);
}
function createQueryString()
{
var a=document.getElementById("a").value; //参数值,可以找到单选框的值
var b=document.getElementById("b").value;
var queryString="a="+a+"&b="+b;
return queryString;
}
function handleStateChange()
{
if(xmlhttp.readyState==4)
{
if(xmlhttp.status==200)
{
displayResult();
}
}
}
function displayResult()
{
var result=document.getElementById("result");
result.innerText="结算结果:"+xmlhttp.responseXML.getElementsByTagName("int")[0].firstChild.data;
}
</script>
</head>
<body>
<p>a:<input type="text" id="a"/></p>
<p>b:<input type="text" id="b"/></p>
<p><input name="Submit" type="button" onclick="SumIt();" value="计算" /></p>
<label id="result"></label>
</body>
WEB服务:
<%@ WebService Language="C#" Class="Service" %>
using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
[WebService(Namespace = "http://tsingjun.cn/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class Service : System.Web.Services.WebService
{
[WebMethod]
public int Sum(int a, int b)
{
return a + b;
}
}
很经典的一问,WebService好象还没那么高级。参数如果实在很多你就拼成一个字符串传过去嘛。