`
qianmianz
  • 浏览: 11797 次
  • 性别: Icon_minigender_2
  • 来自: 厦门
最近访客 更多访客>>
社区版块
存档分类
最新评论

在同一页面,两次调用同一个控件变量只显示一个的解决办法

阅读更多

  刚接触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方法,就可以多次使用该控件了

分享到:
评论

相关推荐

    易语言源码任意多按钮执行同一个子程序.zip

    下面是一个简单的例子,展示如何在两个按钮的单击事件中调用同一个子程序: ```易语言 .子程序 执行通用操作 .局部变量 操作结果, 整数型 ; 在这里执行你的通用操作 操作结果 = 1 ; 示例操作:设置一个返回值 ....

    modeling.zip_gui 设计

    在这个项目中,"gui调用另一个gui的axes文件"表明开发者可能遇到了在同一个GUI中多次调用绘图区域(axes)的问题。在MATLAB等编程环境中,axes是用于绘制图形的容器,通常一个GUI只有一个默认的axes。但是,如果需要...

    易语言-最简单的任意多按钮执行同一个子程序例程

    本例程“易语言-最简单的任意多按钮执行同一个子程序例程”旨在教会用户如何在易语言中创建多个按钮,并使它们共享同一个事件处理子程序,无论点击哪个按钮,都能执行相同的功能。这在GUI(图形用户界面)设计中十分...

    JSP和Servlet面试题

    (Synchronized)可以保证在同一时间只有一个线程访问,(使用同步块会导致性能变差,最好不去使用实例变量) 7.Jsp的重定向和转发的流程有什么区别 重定向是客户端行为,转发是服务器端行为 重定向时服务器...

    delphi 问题

    在描述中提到的`unit3`里,`s`需要被声明为静态变量,这可能是为了确保它的值在多次调用同一单元中的函数或方法时不会丢失。静态变量的声明通常如下: ```delphi class var s: string; ``` 这样,`s`在类的实例...

    Android-DBClickBlocker单击事件防止变成双击事件

    一个常见的问题就是用户在短时间内连续点击同一个按钮或控件,导致应用误处理为两次独立的点击事件,这通常被称为“双击”或“快速点击”问题。为了解决这个问题,开发者们设计了各种策略,其中之一就是...

    二级计算机VB练习八.pdf

    14. 循环计算:给定的代码是一个嵌套循环,计算的是阶乘,当n=3时,外层循环执行3次,内层循环依次执行1次、2次、3次,x每次累加1,最终显示的值是1+1+1=3。 以上就是根据题目内容解析出的相关知识点,包括操作系统...

    Access 2000中文版高级编程(part1)

    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 ...

    简单实用计算器程序,可用于学习VC程序开发

    这是一个强大的C++编程工具,包含了编辑器、编译器、调试器等一系列功能,使得开发者可以在同一平台上完成代码编写、编译和调试。启动VC6.0,新建一个Win32 Console Application项目,选择“Empty Project”模板,...

    net学习笔记及其他代码应用

    6.如果在一个B/S结构的系统中需要传递变量值,但是又不能使用Session、Cookie、Application,您有几种方法进行处理? 答 : this.Server.Transfer 7.请编程遍历页面上所有TextBox控件并给它赋值为string.Empty? ...

    Access+2000中文版高级编程

    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) ...

    .NET面试题

    **重载**(overloading)指的是在同一个类中定义多个同名但参数列表不同的方法,编译器会根据调用时的参数类型和数量来决定具体调用哪个方法。而**覆写**(overriding)发生在继承关系中,子类可以通过使用override...

    C++MFC教程

    每一个运行的程序都有自己的消息循环,在循环中得到属于自己的消息并根据接收窗口的句柄调用相应的窗口过程。而在没有消息时消息循环就将控制权交给系统所以Windows可以同时进行多个任务。下面的伪代码演示了消息...

    2021-2022计算机二级等级考试试题及答案No.14702.docx

    2. 排序算法比较次数:冒泡排序在最坏情况下需要比较 n(n-1)/2 次,而快速排序在最坏情况下需要比较 n(n-1)/2 次。这两个排序算法在不同情况下的效率表现不同,冒泡排序适用于小规模或部分有序的数据,而快速排序在...

    VB课程设计俄罗斯方块

    则消除这行的方块,并且使上面的方块自由下落,其中,方块向下的速度是有时钟控件控制的,在游戏中,用户也可以使用向下键加快下落速度,定义一个变量,对消除的函数进行记录,最后就可以得出用户的分数,用if 语句...

    Microsoft.Net常见问题集锦

    - `override` 用于在派生类中重写基类的虚方法,而重载(overload)是在同一个类中定义多个同名但参数不同的方法。 30. **如果在一个 B/S 结构的系统中需要传递变量值,但是又不能使用 Session、Cookie、...

    .NET经典面试题(.NET面试集锦 全)

    * 委托可以把一个方法作为参数代入另一个方法。 * 委托可以理解为指向一个函数的引用。 * 事件是一种特殊的委托。 5. override与重载的区别 * 重载是方法的名称相同,但参数或参数类型不同,进行多次重载以适应...

    2021-2022计算机二级等级考试试题及答案No.5111.docx

    选项C的描述是错误的,因为在不同的方法中可以使用相同的变量名,只要它们不在同一个作用域内;选项D指出在复合语句中定义的变量只在该复合语句内有效,这是正确的。 ### 19. 递归调用中的存储分配 **知识点说明**...

    2021-2022计算机二级等级考试试题及答案No.19256.docx

    由于递归调用发生在同一个对象实例上,且`int`类型的变量`i`是按值传递的,因此每次调用实际上都在处理不同的值副本。这意味着即使递归调用多次,也不会导致多个线程同时锁定同一个对象而引发死锁。若将`int i`替换为...

    2021-2022计算机二级等级考试试题及答案No.19331.docx

    - **详细解释**: 当定义一个类的构造函数时,可以使用`this()`来调用同一类中的另一个构造函数,或者使用`super()`来调用父类的构造函数。这两种调用都必须放在构造函数的第一行,以便在对象创建过程中正确地初始化...

Global site tag (gtag.js) - Google Analytics