回顾学习EXT的过程,自己一直从事.NET快速开发(不喜欢JAVA平台比较乱的Jar包,版本控制力太差)。EXT虽然是纯UI东东,但似乎跟 JAVA一直有着亲蜜的关系,找的所有成型点的例子中,跟JAVA的居多,用WebService和ASP的都非常不适用,Ext的界面设计非常方便,但通信起来,只有用JSON或XML等中间件来传递,存在解译成本和传递成本,WebService即要花N多安全功夫,效率也很低,加上用LINQ镜像延时,用.net来做EXT实在很痛苦,跟ASPX淘汰的刷新机制无太大差别。今天我就是来解放大家的。
我喜欢EXT,终于想到了一个超完美的整合,用.net 自带的Ajax类库交互数据,用Ext的UI 控制表现,perfect!
1。VS2008支持JS单步调试,可设断点调试JS,(不用代码提示,可以提高自己的熟练度,自己看看要不要在VS2008里面加代码提示的JS文件吧)
2。使用.net 自带的Ajax类库
3。后台类直接写C#方法即可,爱怎么写就怎么样。
Ajax类的通信取代,如下代码,这是我们常见的Ajax方法,前面注册就省略了
[Ajax.AjaxMethod(HttpSessionStateRequirement.ReadWrite)] public bool UserCheck(string name,string pass) { if (name.Equals("aa") && pass.Equals("aa")) { return true; Session["Uname"] = name; Session["Upass"] = pass; } else { return false; } }
4。前台JS-AJAX直接调用服务器方法
//现在只需直接调用类.方法,就行了,效率测试非常不错,页面无刷新,所见即所得,太爽了吧!!
var login = function(){ var c=Login.UserCheck(document.getElementById('Uname').value,document.getElementById('Upass').value); if(c.value==true) { Ext.MessageBox.alert('通过'); } else{ Ext.MessageBox.alert('不通过'); } } } //原来的EXT实现很麻烦,需要按下面的步骤来 // // 执行当前表单面板的submit // f.form.submit({ // // 动作发生期间显示的文本信息 // waitMsg : '正在登录......', // // submit发生时指向的地址 // url : 'http://localhost:2020/Service1.asmx/UserLogin', // // 表单提交方式 // method : 'POST', // // 数据验证通过时发生的动作 // success : function(form, action){ // window.location.href = 'index.htm'; // }, // // 反之...... // failure : function(form, action){ // reset(); // if (action.failureType == Ext.form.Action.SERVER_INVALID) // Ext.MessageBox.alert('警告', action.result.errors.msg); // } // });
呵呵,像这样,是不是就简单的结合第一步数据交互了呢。
当然还有更复杂的数据交互,例如 DataSet,Xml,Json,这些.net 和 Ext 的不一样的数据如何做交互呢?后续研究出来,继续分享给大家,或者大家有什么好的想法可以一起讨论~QQ,留言,评论都可以。