您的位置:首页 > 其它

解析Ajax响应结果的两种简单方法.

2007-12-01 10:50 387 查看
用过Ajax方面技术的都知道,部分的框架都会要求在客户端有个响应的function或者客户端的回调,这个方法在整个异步操作中就是用来解析服务器的响应.通常服务器给客户端的response以字符串格式传递,比如json或xml,而比较灵活的xml是最常见的.这也是因为在服务器端将结果转换成xml比较方便.那么解析这些xml成我们自己要的界面元素,就是必不可少.而这中解析,常见的就是用DOM对象,通过xpath,然后加个循环,最后拼凑出一个table或者select.这个过程是比较麻烦.像Ajax.net框架就做得比较智能,能像服务器那样调用对象,但是要形成一个table表格还是要一个个获取,应为客户端没有像dDatagrid那样可以方便的绑定数据源.这里介绍2种解析的方法,基本上就是自动展现.也许有人已经猜到,还是看看代码吧.

1.用服务器控件的RenderControl方法输出html,服务器控件最终在生成的还是html代码,利用这个把datagrid转换成table那就很简单了.而RenderControl方法就是把控件转成html的字符串.

[AjaxMethod()]

2 public string GetSuppliers()

3function TransXml(xmlSource, xsltSource)

2function TransXml(xmlSource, xsltSource)

2 {

3 try

4 {

5 var docXslt = document.implementation.createDocument("", "", null);

6

7 var oParser = new DOMParser();

8 doc = oParser.parseFromString(xmlSource, "text/xml");

9 doc.async = false;

10

11 docXslt.async = false;

12 docXslt.load(xsltSource);

13

14 var oProcessor = new XSLTProcessor();

15 oProcessor.importStylesheet(docXslt);

16

17 oProcessor.setParameter(null, "currentTime", new Date().toLocaleString());

18 sResult = oProcessor.transformToDocument(doc);

19

20 var sXml = new XMLSerializer().serializeToString(sResult, "text/xml");

21 document.getElementById("divResult").innerHTML = sXml;

22 }

23 catch (e)

24 {

25 alert(e.message);

26 }

27

28 }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: