to answer the question with the grid:
you need to set up a HasMany
-association between the customer and invoices model. each defined with its own proxy. you will create two stores and bind them to the grids but only load the customers store.
in the grid select
listener you will do something like this:
select: function( rowmodel, record, index, eOpts ) {
var invoices = record.invoices().load(); // will issue a request on the invoices proxy
invoicesStore.loadData(invoices);
}
Edit: example: Rules for HasMany Associations in ExtJS