刚接触web前端的编程,由于对js编程不太熟悉,在使用过程中遇到一些问题,在此记录下来。
问题简述:由于在项目中需要多次用到一个EXT的查询控件,所以自然而然的想到将这部分代码封装起来,单独保存在一个js文件中,其它需要用到该控件的js文件再调用此控件。于是我将该控件定义如下:
var dateForm= new Ext.FormPanel({
collapsible:true,
collapsed:false,
frame : true,
width : '100%',
labelAlign : 'right',
labelWidth : 40,
layout : 'form',
items : [ {
layout : 'column',
items : [ {
columnWidth : 0.3,
layout : 'form',
items : [ new Ext.form.DateField({
fieldLabel : '开始',
format : 'Y-m',
emptyText : '请选日期',
name : 'startDate '
}) ]
}, {
columnWidth : 0.3,
layout : 'form',
items : [new Ext.form.DateField({
fieldLabel : '结束',
format : 'Y-m',
// maxValue:new Date(),
emptyText : '请选日期',
name : 'endDate'
})]
}, {
columnWidth : 0.3,
layout : 'form',
items : [ new Ext.Button({
text : '查询',
id : 'query',
handler : function() {
}
}) ]
} ]
} ]
});
然后在两个tab页面中分别调用dateForm在tabPanel中加载该控件,只调用一次的时候,控件显示正常,但是调用两次之后,原本预期在两个tabPanel出现的dateForm,只出现一次。而且FF没有报任何错误。
解决方法:在网上找了一阵子原因,发觉两个tabPanel由同一个html调用之后,两个写tabPanel的js页面被编译在一个html页面中,dateForm控件只被渲染了一次。将代码改成如下形式:
function createDateForm(){
startDate = new Ext.form.DateField({
fieldLabel : '开始',
format : 'Y-m',
emptyText : '请选日期',
name : 'startDate '
});
endDate = new Ext.form.DateField({
fieldLabel : '结束',
format : 'Y-m',
// maxValue:new Date(),
emptyText : '请选日期',
name : 'endDate'
}) ;
return dateQueryForm= new Ext.FormPanel({
collapsible:true,
collapsed:false,
frame : true,
width : '100%',
labelAlign : 'right',
labelWidth : 40,
layout : 'form',
items : [ {
layout : 'column',
items : [ {
columnWidth : 0.2,
layout : 'form',
items : [ startDate ]
}, {
columnWidth : 0.2,
layout : 'form',
items : [endDate]
}, {
columnWidth : 0.2,
layout : 'form',
items : [ new Ext.Button({
text : '查询',
id : 'query',
handler : function() {
}
}) ]
} ]
} ]
});
}
这样在原本需要调用dateForm的地方调用createDateForm方法,就可以多次使用该控件了
分享到:
相关推荐
件,消耗资源较大,不能同时加载,需要将其分解为两个控件,在切换时首先卸载一个 控件,然后加载另一个控件,所以要实现动态加载ActiveX控件。 ---- 原理图控件为--Theory.ocx ,对应工程为CTheory; ---- 实物图...
(Synchronized)可以保证在同一时间只有一个线程访问,(使用同步块会导致性能变差,最好不去使用实例变量) 7.Jsp的重定向和转发的流程有什么区别 重定向是客户端行为,转发是服务器端行为 重定向时服务器...
8.2.2 同一个表使用两次(自联接) 189 8.2.3 使用Access的自动查阅功能 191 8.3 运用操作查询:力量的源泉 193 8.3.1 生成表查询(SELECT INTO) 193 8.3.2 追加查询 194 8.3.3 更新查询(UPDATE..SET) 195 ...
6.如果在一个B/S结构的系统中需要传递变量值,但是又不能使用Session、Cookie、Application,您有几种方法进行处理? 答 : this.Server.Transfer 7.请编程遍历页面上所有TextBox控件并给它赋值为string.Empty? ...
8.2.2 同一个表使用两次(自联接) 189 8.2.3 使用Access的自动查阅功能 191 8.3 运用操作查询:力量的源泉 193 8.3.1 生成表查询(SELECT INTO) 193 8.3.2 追加查询 194 8.3.3 更新查询(UPDATE..SET) ...
每一个运行的程序都有自己的消息循环,在循环中得到属于自己的消息并根据接收窗口的句柄调用相应的窗口过程。而在没有消息时消息循环就将控制权交给系统所以Windows可以同时进行多个任务。下面的伪代码演示了消息...
则消除这行的方块,并且使上面的方块自由下落,其中,方块向下的速度是有时钟控件控制的,在游戏中,用户也可以使用向下键加快下落速度,定义一个变量,对消除的函数进行记录,最后就可以得出用户的分数,用if 语句...
鼠标放在一个连接上,会显示图片(类似tooltip) 使用microsoft.web.ui.webcontrols的TabStrip与IFame组件,达到页的切换效果 HttpModule 实现 ASP.Net (*.aspx) 中文简繁体的自动转换,不用修改原有的任何代码,直接部署...
第1章 页面特效 1.1 HTML页面反向显示 1.2 页面自动最大化 1.3 页面自动刷新 1.4 页面的后退、刷新、前进 1.5保护网页源代码 1.6 保护自己的网页不被放入框架 1.7 保护自己的网页不被放入框架 1.8 打印页面的出错...
第1章 页面特效 1.1 HTML页面反向显示 1.2 页面自动最大化 1.3 页面自动刷新 1.4 页面的后退、刷新、前进 1.5保护网页源代码 1.6 保护自己的网页不被放入框架 1.7 保护自己的网页不被放入框架 1.8 打印页面的出错...
第6页 C#(WINFORM)学习 找到集合中数量最多的一个元素 利用方法来查找,可以返回两个变量。 object Jmax0(ArrayList v11,ref int jj) { int i; object j0=0; ArrayList y11=new ArrayList(); //各个不同的元素的...
当然,去重问题也可以在C#语言内解决,只根建立一个临时文件(文本就可以),保存所有的Url地址,差对它们设置相应的属性即可,但查找效率可能不及数据库快。 3. 线程结束是很难判断的,因为它总是在查找新的链接。...
建立一个应用程序 ................................................................................................................................ 17 应用程序的关闭 .......................................
menuLabel 否 String 是 如果多次定义 clickable ,那么它将通过一个右键来进行显示,这里的值就是右键菜单的名称。 sessionParam 否 String 是 参数名称,它将会被回写到 ...
为了解决这个问题,我们可以通过TLS机制,为每一个使用该全局变量的线程都提供一个变量值的副本,每一个线程均可以独立地改变自己的副本,而不会和其它线程的副本冲突。从线程的角度看,就好像每一个线程都完全拥有...
C) 子类继承父类,如果父类中只有一个构造方法并且有参数,那么在子类的构造方法中必须先用super调用父类构造方法并传参。 D) 以上说法都不正确。 题目11:d 程序如下: class Test { private int day; public int...
2.改变窗口外形通过使用新的SDK函数SetWindowRgn(),可以将绘画和鼠标消息限定在窗口的一个指定的区域,因此实际上是使窗口成为指定的不规则形状(区域形状)。“区域”是Windows GDI中一种强有力的机制,区域是...