0 0

Ext中window出了问题,请高手解决!5

我将问题描述一下,window中我放置了两个combobox,在tbar上设置按钮,负责显示window,并设置cancel按钮handler中函数,window.hide()令其隐藏。
一:单击tbar,window出来combobox,我没去动他,然后直接点cancel按钮,window隐藏,再点tbar,window正常显示出来,并且window中的组件完好。
二:问题出现,当我点开window,并且选了combobox中的选项后,我点cancel,也就是window.hide(),然后我又把window打开,这时,window中的combobox不见了。只有fieldLabel的文字。

请大家帮忙。

handler:function(){
					
					var gradeWin = new Ext.Window({
						
						title : '添加年级',
						width : 300,
						height : 150,
						plain : true,
						closeAction : 'hide',
						layout : 'form',
						labelWidth : 80,
						constrain : true, // windows不超过浏览器
						buttonAlign : 'center',
						modal : true,// 生成背景半透明div
						defaultType : 'textfield',
						defaults:{width:160},
						bodyStyle : 'padding:10px;',
						buttons : [{
									text : '确定',
									handler:function(){
										
									//   var stuTreeNode = Ext.getCmp('stuTree');
									 //  alert(Ext.getCmp('myTree')) ;
										
										var tree = Ext.getCmp('myTree') ;
										
										var stuNode = tree.getNodeById('stuTree') ;
										var text = Ext.getCmp('gradeName').getValue().toString();
										var type = Ext.getCmp('gradeType').getValue();
										if(text != ''&& type != '')
										{
											
										var node = new Ext.tree.TreeNode({
											text:text,
											leaf:true
										    });
										//stuNode.isLeaf = false ;    
										stuNode.appendChild(node);
										
										gradeWin.hide();
										}else Ext.Msg.alert('错误提示','有空选项,请重新填写');
										//alert(tree.getNodeById('stuTree'));
										
									}//ok function
								}, {
									text : '取消',
									handler : function() {
										gradeWin.hide();
									}
								}],
						items :[{
							    xtype:'combo',
								fieldLabel:'年级名称',
								id:'gradeName',
								displayField : "text",
								valueField : "value",
								mode : 'local',
								triggerAction : 'all',
								store : new Ext.data.SimpleStore({
												fields : ['value',
																'text'],
												data : [['2004级', '2004级'],
														['2005级', '2005级'],
														['2006级', '2006级'],
														['2007级', '2007级'],
														['2008级', '2008级'],
														['2009级', '2009级'],
														['2010级', '2010级'],
														['2011级', '2011级'],
														['2012级', '2012级'],
														['2013级', '2013级'],
														['2014级', '2014级']
														]
													})
							},{
								xtype:'combo',
								fieldLabel:'年级类型',
								id:'gradeType',
								readOnly : true,
								displayField : "text",
								valueField : "value",
								mode : 'local',
								triggerAction : 'all',
								store : new Ext.data.SimpleStore({
												fields : ['value',
																'text'],
												data : [['已毕业', '已毕业'],
														['未毕业', '未毕业']]
													})
								}]//items
					}) ;//end gradeWin
					
					gradeWin.show();
				  }
2009年4月13日 10:30
  • 大小: 9.3 KB

4个答案 按时间排序 按投票排序

0 0

采纳的答案

楼主的做法不对,你既然将gradeWin对象放在hanlder事件中创建的话,那你多次点击后,就创建了多个gradeWin对象,你把gradeWin创建的部分放在外部即可,在hanlder调用的时候把gradeWin.show();出来即可。

2009年4月13日 14:18
0 0

把 var gradeWin 改成 gradeWin 这样gradeWin就成了全局变量了,就不会第次都创建一个 window,而是覆盖原来的window

2009年4月13日 22:30
0 0

同意楼上的,把hide() 改成 close();
也可以改成destroy();

2009年4月13日 13:43
0 0

把hide() 改成 close();

我测试通过了

Ext.onReady(function() {
	Ext.BLANK_IMAGE_URL = 'resources/images/default/s.gif';
	var win = new Ext.Window({
		width : 300,
		height : 400,
		tbar : [{
			text : 'Show Window',
			handler : function() {
				var gradeWin = new Ext.Window({
					title : '添加年级',
					width : 300,
					height : 150,
					plain : true,
					closeAction : 'hide',
					layout : 'form',
					labelWidth : 80,
					constrain : true,
					buttonAlign : 'center',
					modal : true,
					defaultType : 'textfield',
					defaults : {
						width : 160
					},
					bodyStyle : 'padding:10px;',
					buttons : [{
						text : '确定',
						handler : function() {
							var tree = Ext.getCmp('myTree');
							var stuNode = tree.getNodeById('stuTree');
							var text = Ext.getCmp('gradeName').getValue()
									.toString();
							var type = Ext.getCmp('gradeType').getValue();
							if (text != '' && type != '') {
								var node = new Ext.tree.TreeNode({
									text : text,
									leaf : true
								});
								stuNode.appendChild(node);
								gradeWin.close();
							} else {
								Ext.Msg.alert('错误提示', '有空选项,请重新填写');
							}
						}
					}, {
						text : '取消',
						handler : function() {
							gradeWin.close();
						}
					}],
					items : [new Ext.form.ComboBox({
						fieldLabel : '年级名称',
						id : 'gradeName',
						displayField : "text",
						valueField : "value",
						mode : 'local',
						triggerAction : 'all',
						store : new Ext.data.SimpleStore({
							fields : ['value', 'text'],
							data : [['2004级', '2004级'], ['2005级', '2005级'],
									['2006级', '2006级'], ['2007级', '2007级'],
									['2008级', '2008级'], ['2009级', '2009级'],
									['2010级', '2010级'], ['2011级', '2011级'],
									['2012级', '2012级'], ['2013级', '2013级'],
									['2014级', '2014级']]
						})
					}), new Ext.form.ComboBox({
						fieldLabel : '年级类型',
						id : 'gradeType',
						readOnly : true,
						displayField : "text",
						valueField : "value",
						mode : 'local',
						triggerAction : 'all',
						store : new Ext.data.SimpleStore({
							fields : ['value', 'text'],
							data : [['已毕业', '已毕业'], ['未毕业', '未毕业']]
						})
					})]
				});
				gradeWin.show();
			}
		}]
	});
	win.show();
});

2009年4月13日 11:17

相关推荐

    一个简单的Ext.Window中插入图片的例子

    此外,提供的`一个简单的Ext.Window中插入图片.doc`文件可能包含更详细的步骤或示例代码,建议查阅该文档以获取更深入的理解。记住,实践是最好的老师,动手尝试并根据项目需求进行调整,你将更加熟练地掌握在`Ext....

    Ext.window从右下角弹出/隐藏

    本文将详细探讨如何在ExtJS中实现一个窗口(`Ext.window`)从右下角动态弹出并隐藏的功能,类似于即时通讯软件(如MSN)中的登录提醒。 #### 二、关键技术点 ##### 1. **自定义窗口类** 为了实现上述需求,首先...

    Ext window的使用

    Ext.Window是Ext JS中的一个类,继承自Ext.container.Container,它创建了一个可以在页面上自由移动和调整大小的浮动窗口。窗口通常用作模态对话框、信息提示或其他需要用户交互的场景。 2. **创建一个基本的Ext....

    Ext_Window用法

    Ext_Window用法

    ext 仿window 界面

    "ext 仿window 界面"指的是使用EXTJS 框架来创建类似于Windows桌面操作系统的用户界面,提供一种熟悉且直观的交互体验。这种设计方式可以使Web应用在视觉上更接近本地应用,提高用户的使用舒适度。 EXTJS 提供了...

    Ext-window属性

    以下是对`Ext.Panel` API中与`Window`相关的属性的详细解释: 1. **activeItem**: 这个属性用于指定当前活动的子组件,可以是子组件的序号或ID。在支持一次仅显示一个子组件的布局中,如`Ext.layout.Accordion`、`...

    Ext入门代码!!!!!!!!!!

    Ext的入门示例代码!!!!!!!!!!!!!!!!!!!!

    EXT中文EXT中文EXT中文EXT中文EXT中文

    EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT中文EXT...

    Ext.window的一个扩展组件SuperWin.js

    Ext.window的一个扩展组件SuperWin.js.可灵活自主随意定位,和显示模式;

    EXT Window 通过DIV布局(源代码)

    Ext.Window 通过DIV布局,通过DIV填充window内容,带Ext所需文件。

    解决Ext Grid中文排序问题

    为了解决这个问题,我们可以重写Ext.data.Store的`applySort`函数,以便在进行本地排序时应用中文排序规则。上述代码正是这样一个解决方案。它将原生的`applySort`函数替换为一个新的版本,其中包含了对中文字符串...

    EasyExt_003_第一个组件Ext.Window

    EasyExt_003_第一个组件Ext.Window EasyExt_003_第一个组件Ext.Window

    EXT 中文手册EXT 中文手册

    EXT 中文手册EXT 中文手册EXT 中文手册

    ext教程、ext核心API 、ext中文教程

    它可以帮助你更好地理解和运用EXT的各类功能,解决在实际开发中遇到的问题。中文教程通常会提供实例代码和详尽的解释,方便初学者边学边实践。 在压缩包中的"EXT教程"文件,可能包含了从入门到进阶的各类教程文章,...

    用Ext实现报表中的核心问题解决方案

    ### 用Ext实现报表中的核心问题解决方案 在现代软件开发中,报表的可视化展示是非常重要的一个环节,它能够帮助用户直观地理解数据背后的含义。本文将深入探讨如何使用Ext JS框架来解决报表制作过程中的核心问题,...

    Ext.window

    NULL 博文链接:https://oppovaan.iteye.com/blog/627655

    ExtJs4.2 Window常用方法

    在ExtJs 4.2版本中,`Window`组件是一个非常基础且重要的UI组件,它为开发者提供了一个灵活的弹出窗口解决方案。通过合理的配置,可以轻松实现各种弹出窗体的需求。 ### 配置属性详解 #### plain - **默认值**:`...

    ext中文帮助文档最终版

    使用这个版本,开发者可以确保在开发过程中遇到的问题能得到及时解决,同时享受到EXT 2.0带来的强大功能。 总结,EXT 2.0是一个功能强大的JavaScript库,尤其适合构建具有复杂交互和动态数据更新的Web应用。其组件...

    Ext3.2中文API

    Ext中文API Ext3.2中文API ExtAPI Ext中文Ext中文API Ext3.2中文API ExtAPI Ext中文Ext中文API Ext3.2中文API ExtAPI Ext中文

    EXT4 源码+window下模拟ext2+linux_ext文件系统模拟

    EXT4是Linux操作系统中最常用的文件系统之一,它在2008年被引入到Linux内核,以替代较旧的EXT3系统。...这些知识对于解决实际问题,比如优化文件系统性能、调试文件系统错误或者开发新的文件系统都有很大的帮助。

Global site tag (gtag.js) - Google Analytics