nbjkj的心得小站

导航

Ext学习心得1

最近在学习关于Ext的相关前台框架,下面就我这几天来所遇到的一些问题的心得与体会

1.后台的选择  

Ext就是三层框架的最外面的应用层,它全是javascript写的,和后台无关,刚开始学Ext也是下载别人的源代码进行查看,由于我是.NET程序员,所以能用到的方式就是aspx,ashx和asmx,后2种是我用了Ext后才去了解的,习惯了asp.net真的很少去了解其他的。

由于Ext是Js生成的自然不能直接和cs页面交互,所以刚开始接触的都是用传参的方式跳转到处理的aspx页面中,当然在Page_load然后用requset参数进行操作,这里的最大问题便是参数过多的处理很麻烦,一个个写太累。

后来就接触了ashx,其实和aspx也差不多,就是前台的没了,然后依然要传参进行操作,后来想到用requset.form但是获得到的为空,原因不明。

最后用到的是asmx,它是post传递,直接"文件名.asmx/方法名",前台就可以调用,真的很方便。但是刚生成的没有session,所以对权限处理很不方便,不过网上找了下首先引用using System.Web.SessionState;然后在方法前面加[WebMethod(EnableSession = true)],这样就可以了。还有在脚本调用的话就把类外面的那段注释取消掉。

本来在用asmx前查了下Ext.direct,看了网上下的资料,实例能直接前台调用后台,而且不需要再生成别的aspx,ashx和asmx页面,只要直接引用就能使用,不过我试了下没有成功。

2.Ext在写中遇到的麻烦

由于纯JS脚本调试可以说挺不方便的,而且智能提示也不够灵活

    Ext.Ajax.request
({

 

});

这句话是前后台交互的关键吧,当然你用Ext.direct的话就不需要了.反正每次调用后台就执行这段话。

前台用后台的方法时候,前台就一定要加jsonData:{},不管你带不带参数,不然返回的是XML

method:'POST'这个也是必须的吧。

后台传递到前台的语句基本是json格式,那个只要引用第三方Newtonsoft.Json就可以了

不过由于asmx是用到了POST,所以很郁闷的是它每次返回的数据都会带上d:,这样你前台不得不用ext.decode先转成一段,然后在用ext.decode对刚那个结果的.d再进行一次操作,如果是2.0的话就没问题。后来看了一些资料后发现原来3.5以后为了区分字符串和json格式才这么做的。

接下来就是这次时间花的最多的地方,treepanel,

那个在GET方式下确实没问题,但是asmx是post的,所以在treeloader那边我就犯愁了。

GET方式是用requset['node']获得节点,所以在POST下参数名一定要填node,这下就解决了,原因不明。

然后就是返回的问题,本来后台好端端的返回json格式,但是发现到前台就变成了xml了,原因大概就是没jsonData吧

接下来我拼命的baidu,得到的方法就是重写那个treeloader,具体的方法大家自己去搜下!

 

 

由于本人也是初学者,能力有限,所以有什么地方有问题的可以尽管评哈哈,如果能帮上你什么忙那我更是高兴!

posted on 2010-04-19 00:21  nbjkj  阅读(471)  评论(0编辑  收藏  举报