I put a grid inside a rowpanelexpander (ie. replaced your tabpanel with gridpanel). I added a rowclick listener to the outer grid. When i click on the rows inside my large grid, i get all sorts of weird behaviour with random rows being highlighted and erratic expand/collapse.

It's hard to explain but if i added a row listener to the inner grid, how would the outer grid know to highlight that large row?

createExpandingRowPanelItems: function(record, rowIndex) {
      var panelItems = [
        new Ext.grid.GridPanel({
          store: new Ext.data.Store({
            // blah

var grid = blah // this uses the rowpanelexpander
grid.on('rowclick', etc)