解读XTemplate + WCF读取功能

开发 后端
文章介绍XTemplate + WCF访问已经通过服务端代理的方式解决了XTemplate + WCF访问的问题,返回原生数据给Extjs,从而实现跨域调用。

本文向大家介绍XTemplate + WCF,可能好多人还不了解XTemplate + WCF,没有关系,看完本文你肯定有不少收获,希望本文能教会你XTemplate + WCF相关东西。

1.服务端返回时,必须按以下格式返回:

stcCallback1001({...})其中stcCallback1001中的1001是自动生成的,如果是分页提交的话,每再请求一次1001会变成1002,1003...类推#t#

2.ExtJs官方的示例中虽然ScriptTagProxy的例子并不少,但是就是没有XTemplate+ScriptTagProxy跨域读取的单一功能示例,下面给一个XTemplate + WCF跨域读取数据的示例服务端WCF的处理。

这里与上一篇http://www.cnblogs.com/yjmyzz/archive/2008/09/10/1288399.html (ExtJs学习笔记(22)-XTemplate + WCF 打造无刷新数据分页)相比,多了一个参数callBack,同时返回类型改为Stream,返回方法的处理参考了老张的http://www.cnblogs.com/jillzhang/archive/2008/07/17/1245458.html(再说ExtJs与WCF之间的跨域访问)一文这里要注意的是:

尝试了多次,发现XTemplate不支持多层节点的绑定,即服务端返回的值类似:

  1. public class User  
  2. {  
  3. [DataMember]  
  4. public string Name { get; set; }  
  5. [DataMember]  
  6. public int Age { get; set; }  
  7. }  
  8. [ServiceContract]  
  9. public interface IMyService  
  10. {  
  11. [OperationContract]  
  12. [WebInvoke(UriTemplate = "User/{name}/{age}"Method = "POST",   
  13. ResponseFormat = WebMessageFormat.Json)]  
  14. User CreateUser(string name, string age);  

虽然也是标准的JSON字符串,但是数据节点是多层次的,XTemplate + WCF无法直接读取。所以只能在客户端用JS的正则表达式处理,手动重新组织成XTemplate + WCF所需的JSON对象,最终转换成:

  1. public User CreateUser(string name, string age)  
  2. {  
  3. return new User { Name = nameAge = int.Parse(age) };  
  4. }  
  5.  
  6. public string UpdateUser(string name)  
  7. {  
  8. return "UPDATE...";  
  9. }  
责任编辑:chenqingxiang 来源: 硅谷动力
相关推荐

2009-12-08 18:14:53

WCF Service

2010-02-26 17:44:51

WCF安全参数

2010-03-02 16:05:48

WCF端点配置

2010-03-01 16:25:07

WCF体系架构

2010-03-02 14:41:00

WCF行为控制

2010-02-23 09:51:32

WCF MTOM

2009-11-09 16:25:24

WCF Data Co

2009-12-04 17:35:51

WCF 服务

2010-02-25 13:35:27

WCF tcpTrac

2009-12-21 13:06:05

WCF Address

2010-03-01 16:04:31

WCF服务契约

2010-02-26 15:24:27

WCF释放服务对象

2010-03-01 16:41:04

WCF数据表

2009-12-22 10:16:54

WCF服务状态

2010-03-01 14:08:53

WCF编码器

2009-12-07 10:27:51

WCF分页

2010-02-22 14:28:35

WCF实现loadin

2009-12-08 15:06:33

WCF传输DataSe

2010-03-01 17:35:29

WCF协定

2010-02-25 17:57:26

WCF服务合同
点赞
收藏

51CTO技术栈公众号