javascript 调用webservice的一个例子
来源:互联网 发布:linux phpmyadmin配置 编辑:程序博客网 时间:2024/04/28 16:52
1.web服务类:
主要是检索产品目录及产品名称(ProductService.asmx)
<%@ WebService Class="ProductsService" Language="C#" %>
using System;
using System.Data.SqlClient;
using System.Web.Services;
using System.Collections;
[WebService(Namespace="http://localhost/webservices")]
public class ProductsService:WebService
{
[WebMethod()]
public string[] GetCategory()
{
//检测产品目录后返回产品目录名称的数组
ArrayList arrObj=new ArrayList();
SqlConnection conn=new SqlConnection("server=server90;uid=sa;pwd=sa;database=northwind");
SqlCommand comm=new SqlCommand("select categoryname from categories",conn);
conn.Open();
SqlDataReader sdr=comm.ExecuteReader();
while(sdr.Read())
{
arrObj.Add(sdr["categoryname"].ToString());
}
sdr.Close();
conn.Close();
return (string[])arrObj.ToArray(typeof(System.String));
}
[WebMethod()]
public string[] GetProduct(string categoryname)
{
//根据产品目录名称检索产品
ArrayList arrObj=new ArrayList();
SqlConnection conn=new SqlConnection("server=server90;uid=sa;pwd=sa;database=northwind");
SqlCommand comm=new SqlCommand("select productname,unitprice from categories A,products B where A.categoryid=B.categoryID and A.categoryname=@categoryname",conn);
comm.Parameters.Add("@categoryname",categoryname);
conn.Open();
SqlDataReader sdr=comm.ExecuteReader();
while(sdr.Read())
{
arrObj.Add(String.Format("{0} - {1}",sdr["productname"],sdr["unitprice"].ToString()));
}
sdr.Close();
conn.Close();
return (string[])arrObj.ToArray(typeof(System.String));
}
}
2.客户端(product.html),
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<script language="javascript" type="text/javascript">
var iCallID=0; //由webservice创建的ID
function Init()
{
//开始时得到产品目录
var oService=document.getElementById("server"); //包含webservice.htc的对象
var url="http://localhost/test/ProductService.asmx?WSDL"
oService.useService(url,"category"); //指定要使用的webservice,并为webservice起一个友好的名称category
iCallID=oService.category.callService(category_result,"GetCategory"); //使用回调函数来向服务器发送请示,返回一个调用ID
}
//将服务器返回的结果(数组)添加到产品目录下拉列表中
function category_result(result)
{
if(!result.error)
{
var category=new Array();
category=result.value;
for(var index=0;index<category.length;index++)
{
var option =new Option(category[index]);
document.getElementById("category").options[document.getElementById("category").options.length]=option;
}
form.product.style.display="block";
}
else
{
alert(result.errorDetail.string);
}
}
//改变产品目录,将继续调用产品webservice
function changeCategory(newCategory)
{
var categoryname=newCategory.options[newCategory.selectedIndex].text;
var oService=document.getElementById("server");
var url="http://localhost/test/ProductService.asmx?WSDL"
oService.useService(url,"category");
iCallID=oService.category.callService(product_result,"GetProduct",categoryname);
}
//将服务器返回的结果(数组)添加到产品目录下拉列表中
function product_result(result)
{
if(!result.error)
{
document.getElementById("product").options.length=0;
var product=new Array();
product=result.value;
for(var index=0;index<product.length;index++)
{
var option =new Option(product[index]);
document.getElementById("product").options[document.getElementById("product").options.length]=option;
}
}
else
{
alert(result.errorDetail.string);
}
}
</script>
</HEAD>
<BODY onload="Init()">
<div id="server" style="behavior:url(webservice.htc)" />
<form id="form">
<select id="category" name="category" onChange="changeCategory(this)">
</select>
<select id="product" name="product" style="display:none">
</select>
</form>
</BODY>
</HTML>
- javascript 调用webservice的一个例子
- 一个简单调用webservice的例子
- WebService例子1,JavaScript调用WebService
- 一个WEBSERVICE的例子
- 一个简单的用JS调用WebService的例子
- 调用webService的一个例子(反射、传参)
- 一个简单的cxf框架调用webservice接口天气预报例子
- java调用WebService的例子
- JS调用WebService的例子
- java调用webservice的例子
- Java调用webservice的例子
- 一个webservice的初级例子
- 一个webservice的初级例子
- 一个webservice的初级例子
- javascript 调用 WebService的方法
- javascript 调用 WebService的方法
- javascript 调用 WebService 的方法
- Javascript调用Webservice的汇集
- Selenium IDE扩展与格式
- 用Vmware+Vista SDK进行Vista Credential Provider开发 (一)
- Mysql在数据库链接上配置编码
- 用zlib压缩与解压数据
- 第二届"春回燕归 浙籍精英峰会"见闻
- javascript 调用webservice的一个例子
- 获取句柄的详细信息:(原代码) http://blog.vckbase.com/bastet/archive/2005/03/31/4244.html
- Eclipse中myeclipse和lomboz插件的应用
- 深入分析进程PID相同的奥秘
- Enterprise libraray3.0之一-------Validation Application Block
- VC调试入门
- 干技术有喜有悲
- Bean生成器
- blob学习备忘