本帖最后由 hahalgj 于 2010-07-16 15:08:27 编辑

解决方案 »

  1.   

     var win = new Ext.Window({
                                    xtype : "window",
                                    title : "My Window",
                                    width : 400,
                                    height : 250,
                                    items : panel,
                                    closeAction : 'close',//这里写成 'hide'
      

  2.   

    如果想要模式窗体可以加上 modal: true
      

  3.   

    var win = new Ext.Window({
                                    xtype : "window",
                                    title : "My Window",
                                    width : 400,
                                    height : 250,
                                    items : panel,
                                    closeAction : 'close',
                                    constrain : true,
                                    minizable : true,
                                    maximizable : true,
                                    layout : 'fit',
                                    tools : [{
                                                id : 'save'
                                            }, {
                                                id : 'unpin'
                                            }, {
                                                id : 'plus'
                                            }],
                                    buttons : [{
                                                text : "登录",
                                                listeners : {
                                                    'click' : function() {
                                                        Ext.Msg.alert('登录成功',
                                                                "欢迎登录");                                                }
                                                }
                                            }, {
                                                text : '注销',
                                                listeners : {
                                                    'click' : function() {
                                                        Ext.Msg.alert('失败', "已注销",function(){
                                                        
                                                            win.close();
                                                            
                                                        });
                                                        
                                                    }
                                                }
                                            }]
                                })这段代码放按钮的外面去。每次按增加你还又建一个window
      

  4.   

    +对,这样每次创建window浪费资源的,创建dom也是要时间的
    而且你的window中有id,每次创建个id就重复了;
    建议用closeAction:hide模式;关闭即隐藏掉。然后再显示的时候就win.show
    当panel加载的时候就插件window,后面调用show方法即可
      

  5.   

    谢谢几位,已经解决了。
    改了两个地方:
    1、var win = new Ext.Window({……})在外面独立定义,且
    text : '注销',
      listeners : {
      'click' : function() {
      Ext.Msg.alert('失败', "已注销",function(){
        
      win.close(); //修改为win.hide();2、grid的tbar的增加栏位修改如下,handler实现不了,所以使用了listeners:
    {
    text : '增加',
    tooltip : 'Add a new row',
    iconCls : 'add',
    listeners : {
    'click' : function() { // win.hidden(this);
    win.show(); }
    }
    }