EXT2.2 点按钮打开WINDOW后关闭 再无法打开

zy8250452 2009-04-27 11:29:47
请教各位大哥!!! EXT2.2 点按钮打开WINDOW后关闭 再无法打开
要如何搞?



js

function showAddQuizShowWindow(){
//省略
var addWindow = new Ext.Window({
contentEl:"addQuizShowWindow",//主体显示的html元素,也可以写为el:"win"
title:'增加脑筋急转弯题目',
modal:true,
width:600,
minWidth:600,
autoHeight:true,
items:[frm],
iconCls:"icon"
});

addWindow.show();
};



jsp

<input type="button" onclick=showAddQuizShowWindow(); value="增加脑筋急转弯"
class="button" />
<br>
...全文
511 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zy8250452 2009-04-29
  • 打赏
  • 举报
回复
好的 再次感谢楼上大哥
zy8250452 2009-04-28
  • 打赏
  • 举报
回复
非常感谢各位大哥 问题已经解决!! 用5楼大哥的方法操作完全没问题!!
但是如果用addWindow.show(); addWindow.hide();来操作
会出现点多几次按钮,每次打开的窗口会越来越大,这又是什么原因呢 我的window里有'textarea' 也是越来越大






function showAddQuizShowWindow(){

Ext.QuickTips.init();

var frm = new Ext.form.FormPanel({
frame:true,
autoWidth:true,
autoHeight:true,
items: [
{layout: 'column', border: false, items:[
{layout: 'form', border: false, items: [
{xtype: 'panel', border:false, html: '题目:'},
{xtype: 'textarea', name: 'content', anchor: '100% 100%', hideLabel: true, allowBlank: false }
]}
]},
{layout: 'column', border: false, items:[
{layout: 'form', border: false, items: [
{xtype: 'panel', border:false, html: '答案:'},
{xtype: 'textarea', name: 'result', anchor: '100% 100%', hideLabel: true, allowBlank: false}
]}
]},
{layout: 'column', border: false, items:[
{columnWidth: .9, layout: 'form', border: false, items: [
{xtype: 'textfield', fieldLabel: '顺序', name: 'order', anchor: '100%', allowBlank: false, maskRe: /^\d+$/i }
]}
]}
],
buttons: [
{
text: '保存',
scope: this,
handler: function(){
if (frm.form.isValid()){
frm.form.doAction('submit',{
waitTitle: '保存数据',
waitMsg: '正在保存......',
url : 'quizShow.do?act=addQuizShow',
method: 'post',
params: '',
success: function(form, action){
Ext.Msg.alert('信息','数据增加成功.');
},
failure: function (form, action){
}
});
}
}
},
{
text: '重置',
scope: this,
handler: function(){
frm.form.reset();

}},
{
text: '返回',
scope: this,
handler: function(){
addWindow.hide();
}}
]
});
var addWindow = new Ext.Window({
id : 'addQuizShowWindow' + quizShowWindowCount,
contentEl:"addQuizShowWindow",//主体显示的html元素,也可以写为el:"win"
title:'增加脑筋急转弯题目',
modal:true,
width:600,
minWidth:600,
closeAction: 'hide',
autoHeight:true,
items:[frm],
iconCls:"icon"
});

addWindow.show();

};
Ghost_520 2009-04-28
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 SilverNet 的回复:]
我这样写的没有问题。

HTML code
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="t.aspx.cs" Inherits="t" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<link href="Ext/resources/css/ext-all.css" rel="stylesheet" type="text/css" />

<…
[/Quote]

它的 window 里面要显示 html 内容, 只能打开一次的原因是两次的 window 的 id 都是 ext 默认的 id ,而在一个页面上 ext 不允许重复的 id 存在, LZ 可以讲代码改成如下:


var count = 0;
function showAddQuizShowWindow(){
//省略
var addWindow = new Ext.Window({
id:'win'+count,
contentEl:"addQuizShowWindow",//主体显示的html元素,也可以写为el:"win"
title:'增加脑筋急转弯题目',
modal:true,
width:600,
minWidth:600,
autoHeight:true,
items:[frm],
iconCls:"icon"
});

addWindow.show();

count++ ; // 这样可以使每次new 出来的 window 都不是同一个 id。
};

Ghost_520 2009-04-28
  • 打赏
  • 举报
回复

ext 有时是这样的,页面会撑大或者缩小, 这个到现在我也不是很清楚。
zy8250452 2009-04-27
  • 打赏
  • 举报
回复
up 有大哥知道吗
yeinuse 2009-04-27
  • 打赏
  • 举报
回复
针对windows的重复打开,而且用到contentEl元素,需要用hide,而不是close,仔细看官方demo的话,会注意到。
改进如下:

function showAddQuizShowWindow(){
//省略
var addWindow = new Ext.Window({
contentEl:"addQuizShowWindow",//主体显示的html元素,也可以写为el:"win"
title:'增加脑筋急转弯题目',
modal:true,
width:600,
minWidth:600,
closeAction: 'hide', //此属性默认是'close',这里需要修改成'hide',其他无需修改。
autoHeight:true,
items:[frm],
iconCls:"icon"
});

addWindow.show();
};


jsp

<input type="button" onclick=showAddQuizShowWindow(); value="增加脑筋急转弯"
class="button" />
<br>
SilverNet 2009-04-27
  • 打赏
  • 举报
回复
我这样写的没有问题。

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="t.aspx.cs" Inherits="t" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<link href="Ext/resources/css/ext-all.css" rel="stylesheet" type="text/css" />

<script src="Ext/adapter/ext/ext-base.js" type="text/javascript"></script>
<script src="Ext/ext-all.js" type="text/javascript"></script>
<script>
function showAddQuizShowWindow() {
//省略
var addWindow = new Ext.Window({
title: '增加脑筋急转弯题目',
modal: true,
width: 600,
minWidth: 600,
autoHeight: true
});

addWindow.show();
};
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<input type="button" onclick=showAddQuizShowWindow(); value="增加脑筋急转弯" />
</div>
</form>
</body>
</html>




还有,WINDOW为什么要加contentEl?
tobyzhou 2009-04-27
  • 打赏
  • 举报
回复
不知道你的关闭是怎么关闭的?
难道是点窗口“X”关闭的?

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧