浏览 844 次
|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
最后更新时间:2007-12-11
为什么在第一次按add button时。有正常弹出窗口(里面有个form)。但关闭后,再第二次按add button时,窗口还是有弹出,但是里面form却任何元素都没有了,是不是我哪里写错了?
代码: 1.建立Add按钮在Grid的ToolBar中: // inline toolbars
tbar:[{
text:'Add',
tooltip:'Add a new row',
iconCls:'add',
enableToggle: true,
toggleHandler: function() {
frmAdd.form.render();
var addWindow = new Ext.Window({
id: 'addwin',
layout:'fit',
width:800,
height:600,
plain: true,
items:frmAdd //Load Add form.
});
addWindow.show(this);
}
2.初始化弹出的form. var frmAdd = new Ext.FormPanel({
onSubmit: Ext.emptyFn,
xtype: 'form',
submit: function() {
this.getEl().dom.submit();
},
labelWidth: 75, // label settings here cascade unless overridden
frame:true,
title: '',
bodyStyle:'padding: 0',
width: 350,
labelSeparator:'',
items: [{
xtype:'datefield',
fieldLabel: '日期',
name: 'date',
width: 100,
allowBlank: false,
format:'Y/m/d'
},{
xtype:'textfield',
fieldLabel: '备注',
name: 'remark',
width:300
} ],
buttons: [{
text: 'Save',
handler: function() {
alert('x');
}
}]
});
声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
最后更新时间:2007-12-11
Window 和 FormPanel 都不能重复创建。
|
|
| 返回顶楼 | |
|
最后更新时间:2007-12-11
我加了以下代码,也是不行,也就是说,formPanel先生成出来,然后再次打开时就不再次生成了,
不知道加得对不对; 但我也问了一下老外,老外说在window.close时会把formpanel对象破坏掉,要再次生成。 究竟哪个是对呢? var addWindow;
{
text:'Add',
tooltip:'Add a new row',
iconCls:'add',
enableToggle: true,
toggleHandler: function() {alert(addWindow);
//frmAdd.form.render();
if(!addWindow){
var addWindow = new Ext.Window({
id: 'addwin',
layout:'fit',
width:800,
height:600,
plain: true,
items:frmAdd //Load Add form.
});
}
addWindow.show(this);
}
}
|
|
| 返回顶楼 | |
|
最后更新时间:2007-12-11
引用 window.close时会把formpanel对象破坏掉
Window对象加上下面的配置项,就不会破坏掉了: closeAction : 'hide', 另外: 引用 if(!addWindow){
var addWindow = new Ext.Window({ 写法不对,var addWindow是局部变量,应该去掉var, 并且必需先定义addWindow为私有属性。 |
|
| 返回顶楼 | |
|
最后更新时间:2007-12-11
fangzhouxing 写道 引用 window.close时会把formpanel对象破坏掉
Window对象加上下面的配置项,就不会破坏掉了: closeAction : 'hide', 另外: 引用 if(!addWindow){
var addWindow = new Ext.Window({ 写法不对,var addWindow是局部变量,应该去掉var, 并且必需先定义addWindow为私有属性。 精辟,我终于知道closeAction : 'hide'这句是干嘛的了,以前一直照抄例子。原来实干这个的。 |
|
| 返回顶楼 | |
|
最后更新时间:2007-12-11
谢谢楼上的DX们。现在用hide的话。的确是隐藏了整个FORM。但是我再次打开时。输入的值还在。
其实我想做到是每次按Add按钮,都会打开没有内容的新增的页面。 现在hide是隐藏起来了,那我想每次按add时都重新构造一次呢? 我现有的代码能做得到吗? 刚学extjs,请楼上的各位不要火。。。。;(... |
|
| 返回顶楼 | |
|
最后更新时间:2007-12-11
我试一下改成了这样,就可以实现我的功能啦。。哈哈。。
不过我想把frmAdd的初始化这一段移到外面去,写在里面太长太乱了,但应该怎么放到外面去呢? tbar:[{
text:'Add',
tooltip:'Add a new row',
iconCls:'add',
enableToggle: true,
toggleHandler: function() {
/**
* Handler for Adding a Record
*/
var frmAdd = new Ext.FormPanel({
onSubmit: Ext.emptyFn,
xtype: 'form',
submit: function() {
this.getEl().dom.submit();
},
labelWidth: 75, // label settings here cascade unless overridden
frame:true,
title: 'trying',
bodyStyle:'padding: 0',
width: 350,
labelSeparator:'',
items: [{
xtype:'datefield',
fieldLabel: '日期',
name: 'date',
width: 100,
allowBlank: false,
format:'Y/m/d'
},{
xtype:'textfield',
fieldLabel: '备注',
name: 'remark',
width:300
} ],
buttons: [{
text: 'Save',
handler: function() {
alert('x');
}
}]
});
frmAdd.form.render();
//if(!addWindow){
var addWindow = new Ext.Window({
id: 'addwin',
layout:'fit',
width:800,
height:600,
plain: true,
closeAction : 'close',
items:frmAdd //Load Add form.
});
//}
addWindow.show(this);
}
|
|
| 返回顶楼 | |
|
最后更新时间:2007-12-12
效果是可以了。但为什么第一次弹出来的框口元素对不齐的?
但第二次按ADD,再弹出来时就已经全部对齐了。。。 是不是哪里写错了? 以下是FORM的初始化函数:
function InitFrmAdd()
{
/**
* Handler for Adding a Record
*/
var frmAdd = new Ext.FormPanel({
onSubmit: Ext.emptyFn,
xtype: 'form',
submit: function() {
this.getEl().dom.submit();
},
labelWidth: 75, // label settings here cascade unless overridden
frame:true,
title: 'trying',
bodyStyle:'padding: 0',
width: 350,
labelSeparator:'',
items: [{
xtype:'datefield',
fieldLabel: '日期',
name: 'date',
width: 100,
allowBlank: false,
format:'Y/m/d'
},{
xtype:'textfield',
fieldLabel: '备注',
name: 'remark',
width:300
} ],
buttons: [{
text: 'Save',
handler: function() {
alert('x');
}
}]
});
frmAdd.form.render();
return frmAdd;
}
|
|
| 返回顶楼 | |






