Extjs4自定义关闭,最大化,最小化按钮接听

下面是一个弹出消息框的例子:其中包括grid行点击事件和接听按钮事件


Ext.define('person.view.message.MsgInfo', {

    extend : 'Ext.window.Window',
    initComponent : function() {
        var me = this;
        var mstore = Ext.create('Ext.data.Store', {// 定义数据源
            autoLoad : true,
            fields : [ 'pkid', 'msgtitle', 'sqname',"msgId","sqId"],
            proxy : {
                type : 'ajax',
                url : 'query/getTipsWinInfo.do?userType='+userType, // 请求的服务器地址
                reader : {
                    type : 'json',
                    root : 'data'
                }
            }});
        Ext.apply(me, {
            id : 'msginfo',
            width : 300,
            height : 220,
            layout : 'fit',
            modal : false,
            // plain: true,
            shadow : false, // 去除阴影
            draggable : true, // 默认不可拖拽
            resizable : false,
            closable : true,
            frame : false,
             minimizable:true,
            maximizable:true,
            animateTarget:this,

            title : "提示",
            bodyStyle : 'background:#5CA2D5',
            closeAction : 'destroy', // 默认关闭为隐藏
            listeners : {
                 minimize: function () {
                    var me = this;
                    me.setHeight(0);
                    me.setWidth(0);
                    this.initPosition(true);
                    Ext.EventManager.onWindowResize(this.initPosition, this); // window大小改变时,重新设置坐标
                    Ext.EventManager.on(window, 'scroll', this.initPosition, this); // window移动滚动条时,重新设置坐标
                    this.on('beforeshow', this.showTips);
                    this.on('beforehide', this.hideTips);
//                    me.hide();
                },maximize:function(){
                    var me = this;
                     me.setHeight(220);
                     me.setWidth(300);
                     this.initPosition(true);
                        Ext.EventManager.onWindowResize(this.initPosition, this); // window大小改变时,重新设置坐标
                        Ext.EventManager.on(window, 'scroll', this.initPosition, this); // window移动滚动条时,重新设置坐标
                        this.on('beforeshow', this.showTips);
                        this.on('beforehide', this.hideTips);
                },close:function(){
                    if(mstore.data.length>0){
                            var msid = "";var msgid_shequid="";
                         for(var i=0;i<mstore.data.length;i++){
                             var rec=mstore.getAt(i);
                             msid+=rec.get('pkid')+","//记录表消息
                             msgid_shequid+=rec.get('msgId')+"-"+rec.get('sqId')+","//源消息
                         }//alert(msid.substring(0,msid.length-1));
                         Ext.Ajax.request({
                            url : 'message/UpdateMsgInfo.do',
                            method : 'POST',
                            params: {
                                msgid : msid.substring(0,msid.length-1),
                                userType:userType,
                                msgid_shequid:msgid_shequid
                            },
                            success : function(response) {
                                var messid = response.responseText;
                                if(messid==1){
                                    me.close();
                                }
                            }
                                });
                        }
                },

                show : function() {
                    me.MsgInfo();
                }
            }
        });
        this.initPosition(true);
        Ext.EventManager.onWindowResize(this.initPosition, this); // window大小改变时,重新设置坐标
        Ext.EventManager.on(window, 'scroll', this.initPosition, this); // window移动滚动条时,重新设置坐标
        this.on('beforeshow', this.showTips);
        this.on('beforehide', this.hideTips);
        this.callParent(arguments);
    },
    // 参数: flag - true时强制更新位置
    initPosition : function(flag) {
        if (true !== flag && this.hidden) { // 不可见时,不调整坐标
            return false;
        }
        var doc = document, bd = (doc.body || doc.documentElement);
        // ext取可视范围宽高(与上面方法取的值相同), 加上滚动坐标
        var left = bd.scrollLeft + document.body.clientWidth - 5 - this.width;
        var top = bd.scrollTop + document.body.clientHeight - 5 - this.height;
        this.setPosition(left, top);
    },
    showTips : function() {
        var self = this;
        if (!self.hidden) {
            return false;
        }
        self.initPosition(true); // 初始化坐标
    },
    hideTips : function() {
        var self = this;
        if (self.hidden) {
            return false;
        }
    },
    MsgInfo : function() {
        var store = Ext.create('Ext.data.Store', {// 定义数据源
            autoLoad : true,
            fields : [ 'pkid', 'sqname', 'msgtitle',"msgId","sqId"],
            proxy : {
                type : 'ajax',
                url : 'query/getTipsWinInfo.do?userType='+userType, // 请求的服务器地址
                reader : {
                    type : 'json',
                    root : 'data'
                }
            },
            listeners : {
                load : function(store) {
                if(store.data.length>0){
                    
                }
                }
            }
        });
        var grid = Ext.create('Ext.grid.Panel', {
            columns : [ {
                text : "消息标题",
                flex : 3,
                align : 'center',
                sortable : false,
                dataIndex : 'msgtitle'
            }, {
                text : "来自查看",
                flex : 1,
                align : 'center',
                sortable : false,
                dataIndex : 'sqname'
            }
            ],
            border : false,
            store : store,
            columnLines : true,
            frame : true,
            header : false,
            iconCls : 'icon-grid',
            listeners:{
                itemclick:function(view,record, item, index, e){
                    var msgId=record.get('msgId');//源消息
                    var win = Ext.create("person.view.message.mesWin",{
                           title:'您有新消息',
                           iconCls :"bik",
                           id:'shequ_msg_1',
                           animateTarget:Ext.getBody(),
                           modal:true,
                           closable: false ,
                           url:"message/getMessageList.do",
                           messid:msgId,
                           tools:[{
                               type:'close',
                               id:'closableid',
                               hidden :false,
                               qtip: '关闭窗口',
                               handler: function(event, toolEl, panel){
                                   Ext.Ajax.request({
                                    url : 'message/UpdateMsgInfo.do',
                                    method : 'POST',
                                    params: {
                                        messid:msgId,//消息ID
                                        userType:userType,
                                        msgid_shequid:""
                                    },
                                    success : function(response){
                                        var messid = response.responseText;
                                        if(messid==1){
                                            win.close();
                                        }
                                    }
                                        });
                                   win.close();
                               }
                           }
                           ]
                          }).show();

                }
            }
        });
        this.add(grid);
    }
});

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_wangtao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值