extjs中第一次访问有效,第二次访问出现部分组件无法显示的,动态改变组件的label值的方法,ExtJs中组件最好少使用ID属性(推荐更多使用Name属性)
在公司做的一个OA项目中,曾经就遇到了这样的一个问题:(我是在jsp中的div中将js render到div中去的)第一次访问此界面的时候,formpanel上的组件能正常显示,不刷新整个页面的前提下,再次进入到这个界面时,出现了部分组件不能正常显示)。后来经过在网上查找资料发现,那些组件没有显示出来的,是我使用了id去获取组件的对象导致的。我把改成name就可以了。具体如下:
{
border : false,
columnWidth : /*.32*/.50,
layout : "form",
labelWidth : 1,
labelSeparator : " ",
items : [{
xtype : 'combo',
//id : 'freeleadidea'+xtoffice_deal_freeidstring,//id值必须是动态变化的,否则第二次访问无效,如果不想用动态的,就直接用name就可以了
name : 'selectleadname',
store : [['同意。', '同意。'],['已阅。', '已阅。'], ['拟同意。', '拟同意。'], ['同意拟办意见。', '同意拟办意见。']],
forceSelection : true,
triggerAction : 'all',
mode : 'local',
readOnly : true,
emptyText : /*'请选择'*/'选择常用审批语',
width : 180,
listeners : {
select : function() {
xtoffice_deal_batchsuggest.setValue(xtoffice_deal_leadidea.getValue());
}
}
}]
}
只贴出了部分代码。
在onready()中获取该组件的方式:
//xtoffice_deal_leadidea = xtoffice_workflow_freedealform.findById("freeleadidea");(一般不要用id属性获取,后面下文会有说明)
xtoffice_deal_leadidea = xtoffice_workflow_freedealform.getForm().findField("selectleadname");
2.如何动态的改变label的值:
// 动态改变fieldLabel的值;
Ext.DomQuery.selectNode('label[for=labeltext'+xtoffice_deal_idstring+']').innerHTML = 草拟意见+':';
Ext.DomQuery.selectNode('label[for=labeltextman'+xtoffice_deal_idstring+']').innerHTML = '草拟人 :';
for中的labeltext'+xtoffice_deal_idstring+'是该组件的动态id值。我在项目中遇到了上述上的问题,而这里就是用了一个动态的id呗。
2.根据combox的值,动态改变combox自己的fieldLabel的值
因为在不为组件指定ID的情况下,默认为其自动分配id;如果手动指定ID,系统就会以此为准。
但是往往在系统中,尤其是使用TabPanel的情况下,一下加载了多个JS页面,很容易出现多个组件使用重复的一个ID都情况,当关闭某个tab页,却因为别的tab页存在相同id的组件无法销毁该页面组件;而且在使用Ext.getCmp获取组件时候出问题--往往得不到我们想要的效果(比如Ext.getCmp后重置该组件的值,却无效)。
因此,建议在Ext中少使用ID属性。
1. 如果必须使用ID属性,建议ID值用父组件ID+子组件ID的形式来指定子组件的ID;
2. 建议使用
FormPanel.getForm().findField('id/name');
或者
Ext.get('id/name');
来替代
Ext.getCmp('id')获取组件。
3. 或者定义组件为变量,然后在FormPanel或者GridPanel中引入。
extjs中第一次访问有效,第二次访问出现部分组件无法显示的,动态改变组件的label值的方法,ExtJs中组件最好少使用ID属性(推荐更多使用Name属性)的更多相关文章
- laydate中设置动态改变max与min值的方法
参考网址: 原网址:https://blog.csdn.net/cherry_11qianqian/article/details/82259704 改进的网址:https://blog.csdn.n ...
- 动态改变Listview的item背景颜色和item中字体的颜色
https://blog.csdn.net/qq_14813933/article/details/50417859
- matlab学习笔记12_2创建结构体数组,访问标量结构体,访问非标量结构体数组的属性,访问嵌套结构体中的数据,访问非标量结构体数组中多个元素的字段
一起来学matlab-matlab学习笔记12 12_2 结构体 创建结构体数组,访问标量结构体,访问非标量结构体数组的属性,访问嵌套结构体中的数据,访问非标量结构体数组中多个元素的字段 觉得有用的话 ...
- 解决Mysql连接池被关闭 ,hibernate尝试连接不能连接的问题。 (默认mysql连接池可以访问的时间为8小时,如果超过8小时没有连接,mysql会自动关闭连接池。系统发布第二天访问链接关闭问题。
解决Mysql连接池被关闭 ,hibernate尝试连接不能连接的问题. (默认MySQL连接池可以访问的时间为8小时,如果超过8小时没有连接,mysql会自动关闭连接池. 所以系统发布第二天访问会 ...
- 文件上传时jquery.form.js中提示form.submit SCRIPT5: 拒绝访问
利用其它控件触发file的click事件来选择文件后,使用jquery.form.js中的submit方法提交时IE报错:form.submit SCRIPT5: 拒绝访问,其它浏览器正常, < ...
- ASP.NET MVC中使用ASP.NET AJAX异步访问WebService
使用过ASP.NET AJAX的朋友都知道,怎么通过ASP.NET AJAX在客户端访问WebService,其实在ASP.NET MVC中使用ASP.NET AJAX异步访问WebService 也 ...
- php中cookie实现二级域名可访问操作的方法
本文实例讲述了php中cookie实现二级域名可访问操作的方法.分享给大家供大家参考.具体方法如下: cookie在一些应用中很常用,假设我有一个多级域名要求可以同时访问主域名绑定的cookie,下面 ...
- tomcat第一次使用正常启动后访问8080端口报404错误
问题:tomcat第一次使用正常启动后访问8080端口报404错误 解决办法:双击tomcat调出tomcat的xml文件页面,Server Locations 默认是选第一行即Use Workspa ...
- AJPFX关于java中可访问控制符和非访问控制符的详细总结
1.类的修饰符分为:可访问控制符和非访问控制符两种. 可访问控制符是:公共类修饰符 public 非访问控制符有:抽象类修饰符 abstract :最终类修饰符 final 1 )公共类修饰符 pub ...
随机推荐
- Java基础知识强化之IO流笔记55:IO流练习之 自定义类模拟LineNumberReader的获取行号功能案例
1. 自定义类模拟LineNumberReader的获取行号功能案例 2. 代码实现: (1)MyBufferedReader.java: package cn.itcast_08; import j ...
- iOS之Sqlite和FMDB
在iOS 开发中,总会用到数据库的操作,来实现增.删.改.查. 尤其是查询. 一旦涉及到查询的操作,那就非得用数据库不可了. SQLite (http://www.sqlite.org/docs. ...
- 使用POI操作Excel使用小总结
1. Workbook维护一个调色板,可以自定义设置56种颜色,下标从8到63. 用到颜色的地方,可以输入下标获取颜色,如CellStyle的setFillForegroundColor(); 2.C ...
- JavaScript如何获得Select下拉框选中的值
js代码: var mySelect = document.getElementById("resultList2"); var mySelectText = mySelect.o ...
- Unity 3D 文件导入出错误解决方法以及unity圣典离线版下载地址
1.安装unity 时我选择了free版的,打开已有项目时出现如下错误提示. 解决方法:先把要导入的文件先拷贝到unity3d安装目录下对应的文件夹内,之后再返回unity3d软件,右键选择“导入”. ...
- python中关于正则表达式一
ab+,描述一个'a'和任意个'b',那么'ab','abb','abbbbb' 正则表达式可以:1.验证字符串是否符合指定特征,比如验证是否是合法的邮件地址 2.用来查找字符串,从一个长的文本中查找 ...
- C++Primer笔记二
真是一本好书,就这么点,就感觉学到很多了,当然也是我水平太差. 用shell或者bash的时候有一个文件重定向,就是每次程序运行的时候,我们都需要手动输入内容,然后程序输出内容,这时可以用文件来代替. ...
- 学习笔记_Java_day13_JSTL标签库(1、2、3、4、5、6、7、8)
1.一种标签语言 day13 l JSTL标签库(重点) l 自定义标签(理解) l MVC设计模式(重点中的重点) l Java三层框架(重点中的重点) JSTL标签库 1 什么是JSTL ...
- ios PromiseKit
简介: 高级开发是高度异步的,PromiseKit收集了一些帮助函数,让我们开发过程中使用的典型异步模式更加令人愉悦. 1.通过pod安装promisekit: 2. promise.h介绍 @imp ...
- oracle输出多行多列数据
--方法一 匿名块中直接 dbms_output输出declare v_sql varchar2(200); v_cursor sys_refcursor; type v_type is ...