首页 新闻 会员 周边 捐助

菜鸟急问 WebService里可以加单选按钮么 (┬_┬)

0
[已解决问题] 解决于 2010-05-14 09:42

今天才现用现学WebService,问题太弱还请见谅!

1. 我知道WebService中一般用[WebMethod]声明的函数在页面上都显示为链接状

请问能不能在WebService的首页中加上单选按钮,点击submit提交。然后根据单选按钮的选择再显示[WebMethod]声明的这种函数....


2. 如果WebService里要传递很多参数,很简单,什么姓名地址之类的,但是可能数量有点多。

我需要想要达到的效果:应用程序调用WebService传入很多参数,WebService把这些参数传到某个server...........

WebService的函数有参数的时候,点击该函数的链接会显示让输入参数的,那我这种纯是传值的种该怎么设置啊??难道写n个函数一个个传值?


完全迷茫中,网上也找不到什么资料,还请了解的大侠指点救命啊!偶要急死了。。。(┬_┬)

问题补充: 二楼的大哥你太牛了,这几天都是你救偶!!! 内牛满面.... (┬_┬) 虽然知道你可能不会再回来看这个问题了,可还是想弱弱的问一句,你给出的代码看起来跟普通的js没啥两样..不懂ajax,还需要另装什么东西么?还是这段代码就直接可以这么挪过去调用了??
我爱阳光的主页 我爱阳光 | 菜鸟二级 | 园豆:204
提问于:2010-05-13 17:03
< >
分享
最佳答案
1

发个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;

  }

}

 

 

 

Astar | 高人七级 |园豆:40805 | 2010-05-13 17:34
大哥你太牛了,这几天都是你救偶!!! 内牛满面.... (┬_┬) 虽然知道你可能不会再回来看这个问题了,可还是想弱弱的问一句,上面的代码看起来跟普通的js没啥两样..不懂ajax,还需要另装什么东西么?还是这段代码就直接可以这么挪过去调用了??
我爱阳光 | 园豆:204 (菜鸟二级) | 2010-05-13 18:24
@小奈鲁:可以拿过去调用,不过现在已经有很多封装了AJAX的框架,如JQUERY,可以学学它。
Astar | 园豆:40805 (高人七级) | 2010-05-14 09:47
其他回答(1)
0

很经典的一问,WebService好象还没那么高级。参数如果实在很多你就拼成一个字符串传过去嘛。

Ou lei | 园豆:619 (小虾三级) | 2010-05-13 17:29
汗~ 见笑了,这是经理提出来的要求,偶只能顶着满脑袋包努力实现 orz
支持(0) 反对(0) 我爱阳光 | 园豆:204 (菜鸟二级) | 2010-05-13 18:21
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册