今天,小白就来总结下extjs的使用的时候的各种小问题或者说是小技巧。希望能够给各位刚接触extjs的朋友一点帮助。

1.当存在store的各种组件的store的autoload属性为false的时候,在某个事件进行(例如容器的展开事件expand或者某个按钮的点击事件)的情况下,需要手动的去加载store即xxx.store.load(),会发现请求的数据什么都一切正常,但是就是页面上就是不显示,经过很长时间的请教与琢磨,才知道是因为Load事件的异步照成的,解决办法是在store.load的回调函数中加入组件的刷新操作。下面的代码即是 treePanel在展开的情况下才去刷新数据源。

 'beforeexpand' : function(node, deep, animal) {
if (node != null || node.id != "top_root")
{
var panel = this;
if(!this.getRootNode().hasChildNodes())
{
panel.store.load({
callback:function(records, operation, success){
panel.expandAll();
}
});
}
}
}

2.combobox插入一条无或者原来不存在数据库中的记录,可以通过在store的监听Load事件中添加。并且可以通过在加载的时候传递参数,在proxy属性下的extraParams定义参数并且传值,实例如下:

var AuditIDsStore = Ext.create('Ext.data.JsonStore', {
autoLoad:true,
proxy: {
type: 'ajax',
url: path+'SysUser/GetAllUser',
reader: {
type: 'json',
root: 'result',
idProperty: 'ID'
},
extraParams: { "uid":uid}
},
fields: ['ID', 'NickName'],
listeners: {
'load':function(){
this.insert(0,{"ID":0,"NickName":"无"});
}
}
});

需要注意的地方: 
1.minChars:如果没有为该属性赋值,则默认是4,即在输入4个字符时,才会触发自动完成(即动态查询) 
2.forceSelection:只能从下拉框中任选一个值,如果输入的值不存在下拉框中,将会被自动清空。 
3.queryParam:当在输入框输入1个字符时,将会把“singer.singerName=输入值”传递到服务端。 
4.triggerAction : 'all':当值为all时,不传递queryParam参数,即不会会把“singer.singerName=输入值”传递到服务端,当值为“query”时,则传递queryParam参数。 
5.hideTrigge:这个属性当为true时,会隐藏掉combobox的下拉按钮。(在这里不采用,已注释)

3.当存在某个动作操作的时候要改变store的参数,即改变store的数据源的时候,可以通过在store加载赋值之前,去改变store的参数。实例如下:

PreNodeIDStore.getProxy().setExtraParam('参数',参数值);

在form里面可以通过下面的方法去通过name去定位到某个组件:form.findField("yourName"),也可以通过js的方法:document.getElementsByName("xxx")[0]

  1. 解决查询条件分页问题(当点击分页工具栏下一页上一页按钮的时候,会导致查询条件消失的解决办法)
  2. abStore.on('beforeload', function(store, options) {
  3. var apply = Ext.getCmp('applytime').getValue();
  4. var end2 = Ext.getCmp('endtime').getValue();
  5. var start = Ext.util.Format.date(apply, 'Y-m-d');
  6. var stop = Ext.util.Format.date(end2, 'Y-m-d');
  7. var new_params = {
  8. applytime : start,
  9. endtime : stop
  10. };
  11. Ext.apply(store.proxy.extraParams, new_params);
  12. });

4.当下拉框的某个元素被动态移除的时候,会造成下拉框不存在这个选项,也就是说会显示不了显示项,而是会显示成数字,针对这种选项可能因为其他界面缺失,而照成修改的时候显示不了中文的情况,小白自己发现,可以通过以下方式解决。

        var AuditIDs = null;
AuditIDsStore.each(function(record){
if(record.get('ID')==records.get("AuditIDs"))
{
AuditIDs = records.get("AuditIDs");
}
});
//即是用来判断原来的值在现在的下拉框的选项中还是否存在的,如果不存在,则是null,当Null这个值作为值赋值给下拉框的时候,则会显示为空,然后就可以用来判断逻辑操作了

5.当extjs 下是store 需要在全局使用的时候,可以通过给store 赋值,然后通过 Ext.data.StoreManager.lookup('id')的方法锁定到store.

6.界面无故错乱的原因:

  1,id的错误,首先要查看 ,在同一个页面中,是否有重复的id 属性,如果有,会照成渲染问题,导致界面的错乱。

  2.当子组件使用layout:fit布局的时候,而他的父容器却没有指定宽高,会照成容器的填充失败。

  当动态添加或者其他因素导致界面上各个组件的显示混乱掉的时候,这个极大的原因是因为在各个组件中设置了id,导致id的重复,然后导致extjs下的渲染失败,就会形成界面混乱,因此,在遇到无缘无故的界面混乱时,首先检查下id的重复,最后说一句,尽量不要给控件使用id,可以通过使用name来给组件标示。

7.store读取json数据源显示数据的问题  明明json里面有多条数据,但是总是显示的一条数据,不知道为什么。后来才知道,原来是自己的json数据的问题,id重复,导致了只读取了一条json数据,(一般情况下是不会出现这个问题的)!

8:监听控件的keypress,keyup等事件的时候,需要加上enableKeyEvents: true 配置项,否则监听不了。

extjs 常见的小问题的更多相关文章

  1. 用纯css写一个常见的小三角形

    .test{ margin:50px auto; width: 0; height: 0; overflow: hidden; border-width: 10px; border-color: #0 ...

  2. 打码(C语言)常见粗心小错误 (前方高能,一定要点)

    打码(C语言)常见粗心小错误 标签(空格分隔): 博客 自我介绍 本人学院 (http://sdcs.sysu.edu.cn/) 欢迎访问 本人学号 16340213 目录 打码C语言常见粗心小错误 ...

  3. 《java入门第一季》之类(String类常见方法小叙)

    String类下面的构造方法和一些常见的方法: /* * 字符串:就是由多个字符组成的一串数据.也可以看成是一个字符数组. * 通过查看API,可以知道 * A:字符串字面值"abc&quo ...

  4. Extjs中Store小总结

    http://blog.csdn.net/without0815/article/details/7798170 1.什么是store? Store类似于一个本地仓库(即数据存储器),包括有 Arra ...

  5. JS常见的小代码

    一:去掉数组里面的重复项. 比如 如下一个数组:var arr = [1,2,4,3,4,3]; 我想要得到数组 [1,2,4,3].为这样的 写一个函数去掉重复的项. var unique = fu ...

  6. HUAWEI HiAI常见FAQ小贴士

    8月7日,HUAWEI HiAI系统架构师在CSDN平台为广大开发者进行了以“APP进阶实战:最快10分钟接入HUAWEI HiAI”主题的直播,迎来600多名开发者在线上观看. ​ 直播中,讲师详细 ...

  7. linux 维护常见场景小命令 (未完待续)

    1.安装KDE桌面 [root@rhel06 ~]# yum -y groupinstall "X Windows System" "KDE Desktop" ...

  8. 一些CSS常见的小问题小笔记

    父元素与子元素之间的margin-top问题: 给子元素盒子一个垂直外边距margin-top,父元素盒子也会往下走margin-top的值 解决方法: 1.修改父元素的高度,增加padding-to ...

  9. js——常见的小方法

    1.随机得到是六位数,可以当做“密码”来使用: Math.random().toString().substr(2, 6):

随机推荐

  1. android 定位的四种方式

    [原文]  开发中对于地图及地理位置的定位是我们经常要用地,地图功能的使用使得我们应用功能更加完善,下面总结了一下网络中现有对于介绍android定位的4种方式,希望对大家有帮助: android 定 ...

  2. QTSingleApplication使用笔记

    http://www.cnblogs.com/kevinzhwl/archive/2012/08/27/2658839.html QTSingleApplication,是Qt官方提供的,用于实现只启 ...

  3. SQL Server加密存储过程的破解

    建好sp后,在“连接到数据库引擎”对话框的“服务器名称”框中,键入 ADMIN:,并在其后继续键入服务器实例的名称.例如,若要连接到名为 ACCT\PAYABLE 的服务器实例,请键入 ADMIN:A ...

  4. JavaScript中关于bool类型判断的一些总结。

    我从书上看到了一些关于   int类型 0 转换成boolean值得时候会把0转换成 false ,string 类型 的  "" 也会装换成false; 所以我就想,我能不能用一 ...

  5. android常用命令

    首先配置好环境变量会比较方便... 大部分sdk提供的工具都在sdk\platform-tools和sdk\tools下,建议配置这两个路径到path 另外aapt工具在sdk\build-tools ...

  6. 如何写出无法维护的代码(JAVA版)

    程序命名(针对那些不能混淆的代码) 容易输入的名字.比如:Fred,asdf 单字母的变量名.比如:a,b,c, x,y,z,或者干脆上中文比如(阿隆索肯德基) 有创意地拼写错误.比如:SetPint ...

  7. 50道JavaScript经典题和解法(JS新手进...持续更新...)

    最近在学习<数据结构与算法JavaScript描述>这本书,对JavaScript的特性和数据结构都有了进一步的了解和体会. 学习之余,也进行了相应的练习,题目难度不大,但是对所学知识的巩 ...

  8. Asp.net mvc + .net ef database first 或 model first 时如何添加验证特性

    今天有个同事问到,在使用Entity Framework 的Database frist或model first时,怎么在model上添加验证的特性? 因为此时的Model是是VS 工具怎么生成的,直 ...

  9. [LeetCode]题解(python):093 Restore IP Addresses

    题目来源 https://leetcode.com/problems/restore-ip-addresses/ Given a string containing only digits, rest ...

  10. Ubuntu 14.04安装OpenCV 3.1

    从OpenCV官网上下载OpenCV官网上下载OpenCV的未编译源代码: 点击这里 国内很多网络打开OpenCV官网速度缓慢,可以点击如下地址直接从GitHub上下载OpenCV 3.1的源代码 下 ...