1. #1
    Sencha User
    Join Date
    Jun 2012
    Posts
    16
    Answers
    1
    Vote Rating
    0
    kurasp is on a distinguished road

      0  

    Default Unanswered: focus out of gridpanel on last cell

    Unanswered: focus out of gridpanel on last cell


    I have a Ext.grid.Panel followed by an Ext.form.Panel. In ExtJS 3 we were able to tab from the last cell in the grid to the first field in the form. Is this still possible?

  2. #2
    Touch Premium Member
    Join Date
    Mar 2011
    Posts
    122
    Answers
    15
    Vote Rating
    7
    chamacs is on a distinguished road

      0  

    Default


    In ExtJS 4.x there is a Ext.FocusManager that can be used to handle keyboard navigation.

    Is this what you're looking for?

  3. #3
    Sencha User
    Join Date
    Jun 2012
    Posts
    16
    Answers
    1
    Vote Rating
    0
    kurasp is on a distinguished road

      0  

    Default


    Quote Originally Posted by chamacs View Post
    In ExtJS 4.x there is a Ext.FocusManager that can be used to handle keyboard navigation.

    Is this what you're looking for?
    I have enabled this, but am not sure how to apply it to the grid to catch the tab event. It seems to only highlight the currently active cell and not alter its behavior.

    As you can see in this fiddle http://jsfiddle.net/kurasp/adNMA/

    I have even tried setting up Ext.util.KeyNav, but it doesn't fire in the grid (no popup), while it does fire in the form field.

    Any help would be greatly appreciated.

  4. #4
    Sencha User
    Join Date
    Jun 2012
    Posts
    16
    Answers
    1
    Vote Rating
    0
    kurasp is on a distinguished road

      0  

    Default


    I was able to resolve this with somewhat messy code, but it works. It invlolved using the specialkey listener in the editor of the textfield.

    columns: [{
    .
    .
    .
    editor: Ext.create('Ext.form.field.Text', {
    listeners:
    {
    specialkey: function( thisColumn, event, eOpts )
    {
    var myGridPanel = this.up().up();
    var myStore = myGridPanel.getStore();
    var selectedRow =myStore.indexOf(myGridPanel.view.getSelectionModel().getSelection([0])[0]);
    if(selectedRow+1 === myStore.getCount())
    {
    if(event.getKey() == Ext.EventObject.TA
    {
    event.preventDefault();
    Ext.EventObject.stopPropagation();
    Ext.getCmp('field1').focus(false, 1);
    }
    }
    }
    }
    })
    }
    ]

    See: http://jsfiddle.net/kurasp/adNMA/11/

Thread Participants: 1