我的编程空间,编程开发者的网络收藏夹
学习永远不晚

ExtJS样例总结 -3

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

ExtJS样例总结 -3

http://tianya23.blog.51cto.com/1081650/813863

http://tianya23.blog.51cto.com/1081650/821649

1、Ajax标准请求:

  1. Ext.Ajax.request({ 
  2.                                     url : '../../blackList/deleteBlackLists.do', 
  3.                                     params : { 
  4.                                         records : blackListRecords 
  5.                                     }, 
  6.                                     success : function(response, opts) { 
  7.                                         var data = Ext 
  8.                                                 .decode(response.responseText); 
  9.                                         if (data.success) { 
  10.                                             Ext.MessageBox.alert('成功', '删除成功!'); 
  11.                                         } else { 
  12.                                             Ext.MessageBox.alert('失败', '删除失败!'); 
  13.                                         } 
  14.                                     }, 
  15.                                     failure : function() { 
  16.                                         Ext.MessageBox.alert('失败', '删除超时!'); 
  17.                                     } 
  18.                                 }); 

2、登录

  1. Ext.onReady(function() { 
  2.     Ext.QuickTips.init(); 
  3.     var adminRadio = new Ext.form.Radio({ 
  4.                 boxLabel : '管理员', 
  5.                 inputValue : 'admin', 
  6.                 listeners : { 
  7.                     'check' : function() { 
  8.                         if (adminRadio.getValue()) { 
  9.                             userRadio.setValue(false); 
  10.                             adminRadio.setValue(true); 
  11.                         } 
  12.                     } 
  13.                 } 
  14.             }); 
  15.     var userRadio = new Ext.form.Radio({ 
  16.                 boxLabel : '普通用户', 
  17.                 inputValue : 'user', 
  18.                 listeners : { 
  19.                     'check' : function() { 
  20.                         if (userRadio.getValue()) { 
  21.                             adminRadio.setValue(false); 
  22.                             userRadio.setValue(true); 
  23.                         } 
  24.                     } 
  25.                 } 
  26.             }); 
  27.     var _form = new Ext.form.FormPanel({ 
  28.                 title : '系统登录', 
  29.                 frame : true, 
  30.                 width : 290, 
  31.                 height : 160, 
  32.                 layout : 'form', 
  33.                 buttonAlign : 'center', 
  34.                 labelAlign : 'center', 
  35.                 defaults : { 
  36.                     width : 160, 
  37.                     labelWidth : 80, 
  38.                     xtype : 'textfield' 
  39.                 }, 
  40.                 items : [{ 
  41.                             fieldLabel : '用 户 名', 
  42.                             vtype : 'alpha', 
  43.                             id : 'name', 
  44.                             name : 'name' 
  45.                         }, { 
  46.                             fieldLabel : '通 行 证', 
  47.                             inputType : 'password', 
  48.                             vtype : 'alpha', 
  49.                             id : 'pass', 
  50.                             name : 'pass' 
  51.                         }, { 
  52.                             xtype : 'radiogroup', 
  53.                             fieldLabel : '用户类型', 
  54.                             id : 'typeRadio', 
  55.                             items : [adminRadio, userRadio] 
  56.                         }], 
  57.                 buttons : [{ 
  58.                             text : '登 录', 
  59.                             style : 'margin-right:15' 
  60.                         }, { 
  61.                             text : '清 除', 
  62.                             style : 'margin-left:15', 
  63.                             handler : function() { 
  64.                                 var _name = _form.findById('name').setValue(''); 
  65.                                 var _pass = _form.findById('pass').setValue(''); 
  66.                             } 
  67.                         }] 
  68.             }); 
  69.             _form.render('container'); 
  70. }) 

 3、column布局中的fieldLabel消失的解决方法:在里面加上layout : 'form', 

  1. layout : 'form', 
  2. items : [item_ListType, { 
  3.             layout : 'column', 
  4.             border : false, 
  5.             labelWidth : 60, 
  6.             items : [{ 
  7.                         layout : 'form', 
  8.                         items : listType 
  9.                     }, { 
  10.                         layout : 'form', 
  11.                         items : item_simpleQuery 
  12.                     }] 
  13.         }, { 
  14.             layout : 'column', 
  15.             border : false, 
  16.             items : [{ 
  17.                         layout : 'form', 
  18.                         items : item_startTime 
  19.                     }, { 
  20.                         layout : 'form', 
  21.                         items : item_endTime 
  22.                     }] 
  23.         }] 

 4、html的dom节点:body

document.body

5、new Ext.Viewport:

不需要render或show,所以也不需要在html中先定义div;

常用于整体布局

6、window的功能点

模态窗口:modal : Boolean

7、对话框

confirm对话框:

  1. Ext.Msg.confirm('Name', '确定要删除吗?', function(btn) { 
  2.         if (btn == 'yes') { 
  3.             // process text value and close... 
  4.             Ext.Msg.alert('Status', "确实要删除"); 
  5.             //btn.hide(); 
  6.         } else { 
  7.             Ext.Msg.alert('Status', "不用删除"); 
  8.         } 
  9.     }); 

prompt对话框:

  1. Ext.Msg.prompt('Name', 'Please enter your name:', function(btn, text){ 
  2.     if (btn == 'ok'){ 
  3.         // process text value and close... 
  4.         Ext.Msg.alert('Status', text); 
  5.         //btn.hide(); 
  6.     } 
  7. }); 

模态对话框:modal: true 

  1. var window = new Ext.Window({ 
  2.                     width : 400, 
  3.                     height : 300, 
  4.                     modal: true 
  5.                 }); 
  6.                 window.show(); 

 

8、树展开

  1. var vroot = new Ext.tree.TreeNode({ 
  2.     text : 'root node', 
  3.     expanded : tree, 
  4. // hidden : true 
  5. }); 
  6.  
  7. var sub11 = new Ext.tree.TreeNode({ 
  8.     text : 'sub node11' 
  9. }); 
  10. var sub12 = new Ext.tree.TreeNode({ 
  11.     text : 'sub node12' 
  12. }); 
  13. var sub1 = new Ext.tree.TreeNode({ 
  14.     text : 'sub node1' 
  15. }); 
  16. sub1.appendChild(sub11); 
  17. sub1.appendChild(sub12); 
  18.  
  19. var sub2 = new Ext.tree.TreeNode({ 
  20.     text : 'sub node1' 
  21. }); 
  22. var sub31 = new Ext.tree.TreeNode({ 
  23.     text : 'sub node11' 
  24. }); 
  25. var sub32 = new Ext.tree.TreeNode({ 
  26.     text : 'sub node12' 
  27. }); 
  28.  
  29. var sub3 = new Ext.tree.TreeNode({ 
  30.     text : 'sub node1' 
  31. }); 
  32. sub3.appendChild(sub31); 
  33. sub3.appendChild(sub32); 
  34.  
  35. var sub4 = new Ext.tree.TreeNode({ 
  36.     text : 'sub node1' 
  37. }); 
  38.  
  39. vroot.appendChild(sub1); 
  40. vroot.appendChild(sub2); 
  41. vroot.appendChild(sub3); 
  42. vroot.appendChild(sub4); 
  43.  
  44. var tree = new Ext.tree.TreePanel({ 
  45.     title : 'tree panel', 
  46.     root : vroot, 
  47.     width : 400, 
  48.     height : 300, 
  49.     listeners : { 
  50.         afterrender : function(p) { 
  51.             var root = p.getRootNode(); 
  52.             root.expand(); 
  53.             var children = root.childNodes; 
  54.             Ext.each(children, function(child) { 
  55.                 if (!child.isLeaf()) { 
  56.                     child.expand(); 
  57.                 } 
  58.             }); 
  59.         } 
  60.     } 
  61. }); 
  62. tree.render(document.body); 

 8、Array数组操作: Ext.each

  1. Ext.each(children, function(child) { 
  2.                 if (!child.isLeaf()) { 
  3.                     child.expand(); 
  4.                 } 
  5.             }); 

 

 9、tree总结

隐藏根节点:使用TreePanel中的rootVisible : false

展开所有:TreePanel的expandAll();

收起所有:collapseAll()

10、form回显

  1. Ext.Ajax.request({ 
  2.                         url : '../../server/getServerById.do', 
  3.                         params : { 
  4.                             serverId : serverId 
  5.                         }, 
  6.                         success : function(response, opts) { 
  7.                             console.log(response); 
  8.                             var data = Ext.decode(response.responseText).data[0]; 
  9.                             server.getComponent(0).getForm().setValues(data); 
  10.                         }, 
  11.                         failure : function(response, opts) { 
  12.                             Ext.Msg.alert("info", "获取server失败"); 
  13.                         } 
  14.             }); 

11、将textfield变灰

//disabled:true, 不可提交

readOnly : true, 

style : "background: #C1C1C1;" 

12、表单重置与设置

重置:

  1. text : 'reset', 
  2. handler : function() { 
  3.     fpanel.getForm().reset(); 

设值:

  1. text : 'set value', 
  2. handler : function() { 
  3.     fpanel.getForm().setValues([ { 
  4.         id : 'name', 
  5.         value : 'zhangsan' 
  6.     }, { 
  7.         id : 'age', 
  8.         value : '15' 
  9.     }, { 
  10.         id : 'description', 
  11.         value : 'my name is zhangsan!' 
  12.     } ]); 

查找值:

  1. text : 'find value', 
  2. handler : function() { 
  3.     var nameValue = fpanel.getForm().findField('name').getValue(); 
  4.     alert(nameValue); 

13、远程获取数据

servlet:

含中文的先设置字符集:response.setCharacterEncoding("utf-8");

  1. response.getWriter() 
  2.                     .write("{success:true,msg:'成功',data : {name : 'lisi', age :'20',description : 'i am lisi!'}}"); 

【注意】格式为:{success:true,msg:'成功',data : {name : 'lisi', age :'20'}},其中:success、data为关键字

前端load数据:

  1. text : 'load value from remote', 
  2. handler : function() { 
  3.     fpanel.getForm().load({ 
  4.         url : 'LoginServlet', 
  5.         params : { 
  6.             appId : 5 
  7.         } 
  8.     }) 

14、启动即加载:监听afterrender事件

  1. listeners : { 
  2.             'afterrender' : function() { 
  3.                 fpanel.getForm().load({ 
  4.                     url : 'LoginServlet', 
  5.                     params : { 
  6.                         appId : 5 
  7.                     }, 
  8.                     success : function(response, responseText) { 
  9.                         Ext.Msg.alert('success', responseText.msg); 
  10.                     }, 
  11.                     failure : function(response, responseText) { 
  12.                         Ext.Msg.alert('fali', responseText.msg); 
  13.                     } 
  14.                 }) 
  15.  
  16.             } 
  17.         }

15、动态刷新grid内容

在成功之后,再次调用search方法,将grid的内容再次查询一遍。

16、combo显示和传递不同的值的处理

  1. var listKey = new Ext.form.ComboBox({ 
  2.                     fieldLabel : '名单类型', 
  3.                     //name : 'listKey', 
  4.                     width : 130, 
  5.                     typeAhead : true, 
  6.                     triggerAction : 'all', 
  7.                     lazyRender : true, 
  8.                     mode : 'local', 
  9.                     allowBlank : false, 
  10.                     store : new Ext.data.ArrayStore({ 
  11.                                 fields : ['listKeyDisplay', 'list_Key'], 
  12.                                 data : [ ['all', ''],['ip', 'ip'], ['cookie', 'cookie'],['__last_loginid__', '__last_loginid__']] 
  13.                             }), 
  14.                     hiddenName:'listKey', 
  15.                     displayField : 'listKeyDisplay', 
  16.                     valueField : 'list_Key', 
  17.                     listeners:{ 
  18.                         afterrender: function(thiz) { 
  19.                             thiz.selectText('all'); 
  20.                         } 
  21.                     } 
  22.                 }); 

【注意】hiddenName必须有,否则传递display的值; 设置value的值传递无效为display值,所以使用afterrender进行设值

17、提交表单

方法1:通过获取button,在增加的click事件中使用ajax请求,在request可以增加form属性,获取表单的参数进行提交。

方法2:通过获取form这个组件进行submit操作

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

ExtJS样例总结 -3

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

ExtJS样例总结 -3

http://tianya23.blog.51cto.com/1081650/813863http://tianya23.blog.51cto.com/1081650/8216491、Ajax标准请求:Ext.Ajax.request({ 
2023-01-31

总结--3

主线程创建的时候会默认创建Looper、HandlerThread则是内置Looper,除此之外其他的线程创建时是不会创建Looper的,需手动创健线程自己的Looper。子线程更新主线程创建的控件引发的错误:Only the origin
2023-01-31

MySQL总结-3

1、连接 mysql -u username -ppassword -P 3306 -D database -hip2、列显示:"\G"mysql> select * from HUMMOCK_BLACK_LIST limit 1 \G; 
2023-01-31

python 学习总结3

Python蟒蛇绘制一、实现程序如下 1 import turtle 2 turtle.setup (650, 350, 200, 200)#turtle的绘图窗体turtle.setup(width, height, startx, st
2023-01-30

IPSec ×××配置总结 3

1.      用路由器实现站点到站点的EZ×××EZ×××有的也写作Easy ×××,顾名思义就是容易使用的×××。它是Cisco开发的用于简化远程端配置和管理的一种基于IPSec ×××的实现,降低了×××在实施过程中的复杂程度。EZ×
2023-01-31

BGP学习 总结3

BGP DECISION PROCESS1 largest weight ( local orininated path :32768 other 0 )2 largest local-preefernce (BGP default loc
2023-01-31

Vue动态样式方法实例总结

在vue项目中,很多场景要求我们动态改变元素的样式,下面这篇文章主要给大家介绍了关于Vue动态样式方法的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
2023-02-07

AIX 5L学习总结3

1.-bash-3.00$ prtconf | more //查看配置信息可以看到大部分配置信息。-bash-3.00$ prtconf | moreSystem Model: IBM,9110-51AMachine Serial Numb
2023-01-31

java面试大总结(3)

101、java中会存在内存泄漏吗,请简单描述。会。如:int i,i2;  return (i-i2);   //when i为足够大的正数,i2为足够大的负数。结果会造成溢位,导致错误。 102、java中实现多态的机制是什么?方法的重
2023-01-31

Kubernetes 学习总结(3) M

APIserver符合RESTful风格,支持GET/PUT/DELETE/POST等各种操作。所以也支持kubectl通过一系列命令对各处资源进行管理控制。常用的资源1)、workLoad(工作负载型资源,运行APP,对外提供服务): P
2023-01-31

jdbc学习总结3------javab

1.测试类的内容:在包:com.hanchao.test中 package com.hanchao.test;  import com.hanchao.dao.UserDao; import com.hanchao.entity.User;
2023-01-31

2020年3月Android面试总结:

前言: 由于新冠状病毒隔离的原因 去年离职到现在一直没有办法找工作 在深圳呆了一个多月了 java基础也复习了一遍 总体来说还是有些收获! 在3月初正式复工以来 公布简历后有很多外包公司打招呼! 因为自己对外包公司印象不好所以拒
2022-06-06

Java 多线程学习总结3

在上一篇中,我们当然希望a++,b++执行完之后,show方法再来show.我们需要的是“原子”动作,一次性地把a++,b++不间断地执行。在java中是利用“互斥”的方法,互斥谁呢?互斥的是相同对象的加锁代码。如果我们把第一篇的SomeB
2023-01-31

怎样进行Linux.shell总结

本篇文章为大家展示了怎样进行Linux.shell总结,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。#系统预定义变量$0 :脚本文件名$1-9 :第 1-9 个命令行参数名$# :命令行参
2023-06-06

将近3个月的实习总结

这篇文章应该写的更早写,但是一直忙学校的论文,其实这个也是借口,如果想要做什么事,怎么都会有时间的。     ......     将近3个多月的实习,发现收获最多的一天就是最后一天,准备离开的时候和鹏叔在外面聊天,然后 突然感觉自己的实习
2023-01-31

OSGi全面总结与WebSphere应用范例是怎样的

本篇文章给大家分享的是有关OSGi全面总结与WebSphere应用范例是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。为了解决现实工程中遇到的版本冲突问题,我研究了 OS
2023-06-17

Android View移动的3种方式总结

前言 在Android开发中,View一直是Android开发人员的一块心病,一方面想要进阶,一方面又害怕进阶,可以说Android的View是进阶路上的最大绊脚石,因为它涉及的东西太多了,比如本次我们此次要写的View移动,另外还包括Vi
2022-06-06

Android中Intent机制详解及示例总结(总结篇)

最近在进行android开发过程中,在将 Intent传递给调用的组件并完成组件的调用时遇到点困难,并且之前对Intent的学习也是一知半解,最近特意为此拿出一些时间,对Intent部分进行了系统的学习并进行了部分实践,下面将自己的学习及I
2022-06-06

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录