首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Ajax >

extjs中store.on('load'function(){})的有关问题

2013-09-07 
extjs中store.on('load',function(){})的问题本帖最后由 showbo 于 2013-08-20 21:12:07 编辑先

extjs中store.on('load',function(){})的问题
本帖最后由 showbo 于 2013-08-20 21:12:07 编辑 先贴代码:

    onMailBoxTabCellClick: function(tableview, td, cellIndex, record, tr, rowIndex, e, eOpts) {
        var store =Ext.getCmp('checkGrid').store;
        Ext.Ajax.request({  
            url: "../../gettext",  
            method: "POST",  
            params: { messageid:  record.raw.messageid}, //发送的参数  
            success: function (response, opts) {
                var mailcontent=Ext.getCmp('mailcontent');
                mailcontent.setValue(response.responseText); 


            },  
            failure: function () { Ext.Msg.alert("提示", "失败"); }  
        });
        store.load({  
            params:{  
                messageid:record.raw.messageid 
            }  
        });        
        var mailcheck=Ext.getCmp('checkbox');
        var mailsender=Ext.getCmp('sender');
        mailsender.setText(record.raw.sender);
        var maildate=Ext.getCmp('sendTime');
        maildate.setText(record.raw.sendTime);
        var mailTitle=Ext.getCmp('mailTitle');
        mailTitle.setText(record.raw.subject);
        var deleteId=Ext.getCmp('deleteId');
        deleteId.setValue(record.raw.messageid);


        var form1=Ext.getCmp('form1');
        form1.hide();
        var g= Ext.getCmp('checkGrid');
        var gstore= g.store;
        store.on('load',function(){
            if(gstore.getCount()===0){
                g.hide();
            }else{
                g.show();
            }
            mailcheck.show();
            if(record.raw.isread==='N'){            
                Ext.getCmp('mailBoxTab').store.load();            
           } 
            alert(record.raw.isread);////////////////
              
        });
        
    }


这是gridpanel点击事件,如果发现点击的记录的N就刷新,可是遇到问题的我第一条记录弹一次,点第二次时候弹两次...
比如我依次点击三条记录对应的isread的Y,N,Y
则弹出窗口分别是
Y
Y,N
Y,N,Y

为什么?
[解决办法]
因为点击一次就绑定一次store的load事件,要先卸载原来的load事件再添加

function storeLoad(){
            if(gstore.getCount()===0){
                g.hide();
            }else{
                g.show();


            }
            mailcheck.show();
            if(record.raw.isread==='N'){            
                Ext.getCmp('mailBoxTab').store.load();            
           } 
            alert(record.raw.isread);////////////////
               
        }

store.un('load',storeLoad).on('load',storeLoad);//////

热点排行