首页 新闻 赞助 找找看

javascript调用webservice的问题

0
悬赏园豆:20 [已关闭问题]

javascript调用webservice再vs2008下已经显得非常的简单,调用字符串,数组等都没有问题

可是发现调用dataset,datable这些就不行了,代码写好后也不提示错误

后来baidu了一下,发现是2008下默认不能自动转换dataset这些数据

不知道大家有没有什么好的方法,可以解决小弟的这个难题,谢过啦

王建国的主页 王建国 | 初学一级 | 园豆:195
提问于:2008-12-20 23:06
< >
分享
其他回答(4)
0

我想dataset是.Net框架中的,而JavaScript中肯定不认dataset,是不是考虑将dataset中的datatable转变为某种数据类型的二维数组,再返回应该可以被JavaScript获得吧。

或者可以将dataset转化为XML(XML也是可以序列化的)再封装到SOAP中发送,也应该是能被JavaScript分析的。

注:没用过JavaScript调用WebService,都是在服务器端调用WebService,所以以上内容只是根据理解而给出的解决方案,不知道是否可行?

刚刚 | 园豆:3151 (老鸟四级) | 2008-12-20 23:22
0

可以自己转啊。在客户端用json,在服务端用dataset,

dataset转json很简单,搜索一下就有,

json转dataset复杂一点,但在vs2008里面直接有序列化/反序列化的类库

lsjwzh | 园豆:113 (初学一级) | 2008-12-21 12:21
0

一般你要自己写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

GUO Xingwang | 园豆:3885 (老鸟四级) | 2008-12-21 14:35
0

可以看这个:http://space.cnblogs.com/question/4403/

在VS2008下调用的,可在.net3.5下序列化会多出一个d,这个d也是我的疑问,需要解决的。不过可以满足楼主的要求。对DATASET也一样再写个转换器。

seeker | 园豆:5 (初学一级) | 2008-12-21 21:15
0

据我所知webservice返回的是一个xml。那个dataSet肯定也在返回的xml里~

你解析那个xml就行了~说起来很简单~~~~

ajaxPro里可能有类似的东西。ajaxPro的js就可以读取服务器返回的DataSet(它相当于把.net里的对象类型都用js实现了)。不过ajaxPro好像用的是json的方法,因为它只发给js读的。如果你的webservice也只是写给js看的也用json算了~~

ajaxPro我是很久前看了下~现在也没代码了。那时候有个示例,可以像C#那样访问dataSet!你运行示例就可以看到js找到是怎么实现。当然还要看服务器端对每种数据类型进行了什么样的转换。

BB_Coder | 园豆:797 (小虾三级) | 2008-12-22 15:32
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册