ExtJs 入门教程二十[数据交互:AJAX]

1.代码如下:

复制代码
  1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2 <html xmlns="http://www.w3.org/1999/xhtml">
  3 <head>
  4     <title></title>
  5     <!--ExtJs框架开始-->
  6     <script type="text/javascript" src="/Ext/adapter/ext/ext-base.js"></script>
  7     <script type="text/javascript" src="/Ext/ext-all.js"></script>
  8     <link rel="stylesheet" type="text/css" href="/Ext/resources/css/ext-all.css" />
  9     <!--ExtJs框架结束-->
 10     <script type="text/javascript">
 11         Ext.onReady(function () {
 12             //创建panel
 13             var panel = new Ext.Panel({
 14                 title: 'Ajax与数据显示',
 15                 width: 200,
 16                 height: 200,
 17                 frame: true
 18             });
 19             //创建数据显示模板
 20             var template = new Ext.XTemplate(
 21                         '<table  id="template">',
 22                            '<tr><td>编号:</td><td>{id}</td></tr>',
 23                            '<tr><td>姓名:</td><td>{name}</td></tr>',
 24                            '<tr><td>生日:</td><td>{brithday}</td></tr>',
 25                            '<tr><td>身高:</td><td>{height}</td></tr>',
 26                            '<tr><td>性别:</td><td>{sex}</td></tr>',
 27                            '<tr><td valign="top">描述:</td><td>{discribe}</td></tr>',
 28                         '</table>'
 29                     );
 30             //获取数据
 31             Ext.Ajax.request({
 32                 url: '/App_Ashx/Demo/Ajax.ashx',
 33                 method: 'post',
 34                 params: { id: 1 },
 35                 success: function (response, options) {
 36                     for (i in options) {
 37                         alert('options参数名称:' + i);
 38                         alert('options参数[' + i + ']的值:' + options[i]);
 39                     }
 40                     var responseJson = Ext.util.JSON.decode(response.responseText);
 41                     template.compile();
 42                     template.overwrite(panel.body, responseJson);
 43                 },
 44                 failure: function () {
 45                     alert('系统出错,请联系管理人员!');
 46                 }
 47             });
 48             //创建窗体
 49             var win = new Ext.Window({
 50                 title: '窗口',
 51                 id: 'window',
 52                 width: 476,
 53                 height: 374,
 54                 resizable: true,
 55                 modal: true,
 56                 closable: true,
 57                 maximizable: true,
 58                 minimizable: true,
 59                 items: [panel]
 60             });
 61             win.show();
 62         });
 63     </script>
 64 </head>
 65 <body>
 66     <!--
 67 说明:
 68 (1)var template = new Ext.XTemplate():创建模板对象,常用于数据显示,也就是我们在开发中提到的“内容页或详细页”。
 69 (2)'<tr><td>编号:</td><td>{id}</td></tr>':中间的{id}占位符要和我们在后台输出 json 对象对应。
 70 (3)Ext.Ajax.request():创建一个AJAX请求.
 71 (4)url: '/App_Ashx/Demo/Ajax.ashx':请求地址。method: 'post',提交方式,params: { id: 1 }参数,我们在做内容页时,经常会这样使用“根据编号取出详细信息”,这个参数在本例中并没有实际意义,在这里只显示用法。
 72 (5)success: function (response, options) {}成功时执行方法。  
 73    这里有两个参数.
 74    response:服务端返回的数据,通过response.responseText来获得XMLHttpRequest的数据,并通过Ext.util.JSON.decode方法把字符串转换成json对象。      
 75    options:向服务端发送的对象。
 76    我们在开发中,经常会遇到这样的问题,就是不知道参数是做什么用的,传的是什么,当我们 alert(parm)的时候,弹出的是[Object]或是[Object][Object]。
 77    那么我们怎么样知道他到底传的是什么呢?我在上页的代码中写了这样的程序:
 78      for (i in options) {
 79                         alert('options参数名称:' + i);
 80                         alert('options参数[' + i + ']的值:' + options[i]);
 81      }
 82      对象我们不知道的对象 options 我们用 for 语句进行遍历,看看对象里存的是什么,这样就可以判断对象是什么了。
 83      for(){}:不知属性个数时,用于对某个对象的所以属性进行循环操作,返回字符串形式的属性名,获取属性值方式。
 84      那如果,我们的子对象还是 Object 怎么办?
 85      for (i in options) {
 86         alert('options参数名称:' + i);
 87         alert('options参数[' + i + ']的值:' + options[i]);
 88         //方式一,判断子对象类型,如果是object则继续遍历子对象
 89         if (typeof (options[i]) == 'object') {
 90             for (j in options[i]) {
 91                 alert('子对象名称:' + j);
 92                 alert('子对象值:' + options[i][j]);
 93             }
 94         }
 95         //方式二,options[i].toSource(),查看对象源码。
 96         //语法:object.toSource() 注:该方法在 Internet Explorer 中无效。
 97      }
 98 (6)template.compile();编译模板。
 99 (7)template.overwrite(panel.body, responseJson):把数据填充到模板中。
100 -->
101 </body>
102 </html>
复制代码

服务端代码/App_Ashx/Demo/Ajax.ashx

复制代码
 1 using System.Web;
 2 
 3 namespace HZYT.ExtJs.WebSite.App_Ashx.Demo
 4 {
 5     public class Ajax : IHttpHandler
 6     {
 7         public void ProcessRequest(HttpContext context)
 8         {
 9             if (context.Request.Params["id"] != null && context.Request.Params["id"].ToString() == "1")
10             {
11                 context.Response.Write("{id:1,name:'张三',brithday:2001-01-01,height:178,sex:'0',discribe:'张三是一个.net软件工程师<br />现在正在学习ExtJs。'}");
12             }
13         }
14 
15         public bool IsReusable
16         {
17             get
18             {
19                 return false;
20             }
21         }
22     }
23 }
复制代码

 

2.效果如下:

无废话extjs教程

可以把ExtJS用在.Net、Java、Php等各种开发语言开发的应用中。ExtJs最开始基于YUI技术,由开发人员 JackSlocum开发,通过参考JavaSwing等机制来组织可视化组件,无论从UI界面上CSS样式的应用,到数据解析上的异常处理,都可算是 一款不可多得的JavaScript客户端技术的精品。 Ext的UI组件模型和开发理念脱胎、成型于Yahoo组件库YUI和Java平台上Swing两者,并为开发者屏蔽了大量跨浏览器方面的处理。相对来说,EXT要比开发者直接针对DOM、W3C对象模型开发UI组件轻松。 ExtJS(ajax框架) 4.2.1 功能介绍 功能丰富,无人能出其右。 无论是界面之美,还是功能之强,ext的表格控件都高居榜首。 单选行,多选行,高亮显示选中的行,拖拽改变列宽度,按列排序,这些基本功能ExtJS轻量级实现。 自动生成行号,支持checkbox全选,动态选择显示哪些列,支持本地以及远程分页,可以对单元格按照自己的想法进行渲染,这些也算可以想到的功能。 再加上可编辑grid,添加新行,删除一或多行,提示多行数据,拖拽改变grid大小,grid之间拖拽一或多行,甚至可以在tree和grid之间进行拖拽,这些功能实在太神奇了。更令人惊叹的是,这些功能竟然都在ext表格控件里实现了。 其实从ext3开始就支持各种方式的统计,且有控件支持excel导出。 功能特点 高性能, customizable UI widgets Well designed, documented and extensible Component model Commercial and Open Source licenses available 更新说明 核心改进:检视框架的架构和重塑其基础。这些变化不单提供了产品性能,还提高了其健壮性。 测试框架:在所有支持的浏览器上对框架进行了持续全面的测试。 类系统:作为Extjs 4架构更新的一部分,引用了一个功能更完整的类系统。 沙盒:在ExtJS历史上,ExjJS 4首次提供了完整的沙盒模式。从ExtJS 4开始,框架不再扩展数组或函数等原生对象,因此,与其它的框架同时加载到页面时,再也不会产生冲突。 应用架构:在ExtJS 4,引入了一个标准化的几乎适合任何ExtJS应用程序的MVC风格的应用架构。使用MVC,开发团队只需要学习一种架构就能理解任何ExtJS 4的应用。 SDK工具:正在测试beta版的Sencha SDK工具,在第一版本中包括了优化工具、生成器和slicer工具。这些工具可让你优化Javascript程序,以确保主题能在IE6正常工作。 全新的图表库:ExtJS4中, 全新的、插件自由的图表库是最激动人心的新功能之一,创建了饼图、线图、面积图、雷达图等等,所有这些都是动画的、易于配置的和可扩展的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值