javascript调用webservice再vs2008下已经显得非常的简单,调用字符串,数组等都没有问题
可是发现调用dataset,datable这些就不行了,代码写好后也不提示错误
后来baidu了一下,发现是2008下默认不能自动转换dataset这些数据
不知道大家有没有什么好的方法,可以解决小弟的这个难题,谢过啦
我想dataset是.Net框架中的,而JavaScript中肯定不认dataset,是不是考虑将dataset中的datatable转变为某种数据类型的二维数组,再返回应该可以被JavaScript获得吧。
或者可以将dataset转化为XML(XML也是可以序列化的)再封装到SOAP中发送,也应该是能被JavaScript分析的。
注:没用过JavaScript调用WebService,都是在服务器端调用WebService,所以以上内容只是根据理解而给出的解决方案,不知道是否可行?
可以自己转啊。在客户端用json,在服务端用dataset,
dataset转json很简单,搜索一下就有,
json转dataset复杂一点,但在vs2008里面直接有序列化/反序列化的类库
一般你要自己写json序列化器,可以使用json.net或asp.net future中的system.web.prewiew(不过在.net3.5下好像序列化以后多出一个d):
可以看下:
http://www.cnblogs.com/dflying/archive/2006/11/17/564088.html
http://www.cnblogs.com/heekui/archive/2007/01/10/616332.html
可以看这个:http://space.cnblogs.com/question/4403/
在VS2008下调用的,可在.net3.5下序列化会多出一个d,这个d也是我的疑问,需要解决的。不过可以满足楼主的要求。对DATASET也一样再写个转换器。
据我所知webservice返回的是一个xml。那个dataSet肯定也在返回的xml里~
你解析那个xml就行了~说起来很简单~~~~
ajaxPro里可能有类似的东西。ajaxPro的js就可以读取服务器返回的DataSet(它相当于把.net里的对象类型都用js实现了)。不过ajaxPro好像用的是json的方法,因为它只发给js读的。如果你的webservice也只是写给js看的也用json算了~~
ajaxPro我是很久前看了下~现在也没代码了。那时候有个示例,可以像C#那样访问dataSet!你运行示例就可以看到js找到是怎么实现。当然还要看服务器端对每种数据类型进行了什么样的转换。