开发者

How to do the same without using Ext.getCmp in this code?

This is the code im using and im firing button click event once the window show event is called. this works fine. but how to do the same without using Ext.getCmp

this is the line

Ext.getCmp('recent_refresh').fireEvent('click');

this is the code

 Ext.create('widget.window', {
      title: 'Activity',
      closable: true,
      closeAction: 'hide',
      width: 250,
      height: 300,
      bodyBorder: true,
      tbar: {
          xtype: 'toolbar',
          ui: 'plain',
          items: [{
              iconCls:'refresh',
              id: 'recent_refresh',
              listeners: {
                click: function(){ 
      开发者_Python百科                Ext.Ajax.request({
                          url: 'control.php',
                          params: {
                              'case': '18'
                          },
                          success: function(response){
                              var json =  Ext.decode(response.responseText);

                          }
                      });               
                }  
              }
          },
          '->',
          {
              xtype: 'displayfield',
              name: 'act_date',
              id: 'act_date',
              value: new Date(),
              formatValue: Ext.util.Format.dateRenderer('Y-m-d')
          }]
      },      
      layout:'accordion',
      border: false,
      items: [ grid1, grid2, grid3 ],
      listeners: {
            show: function() {      Ext.getCmp('recent_refresh').fireEvent('click'); }        
      }

}).show();

Regards


There are many ways to do this. One way is to make an assignment with the Ext.create call since Ext.create returns such a reference. The app namespace in the example below is a filler since any namespaces you are using are unknown from your text. Once you have the variable reference to the widget, you can get use it to get a reference to the top toolbar and then get a reference to the item you want inside of the toolbar.

    Ext.ns('app');
    app.activityWin = Ext.create('widget.window', {...}
    app.activityWin.getTopToolbar().get('recent_refresh').fireEvent('click');


Use the ref property.. I don't know if it has been carried forward to Ext JS 4, but here's how we do it in Ext Js 3.3

var win = new Ext.Window({
..config..
buttons : [{
  text : 'save'
  ref : 'saveButton'
}],

listeners : {
  show : function(win){
   win.saveButton.fireEvent('click'); //saveButton here is the same as used in ref above.
  }
}
});

ref can now been used directly and no need to use Ext.getCmp

check the correct usage of ref in your case and implement it..

Cheers.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜