М... Сам только что начал осваивать этот фреймворк.
Но все же.
1. Попробуйте изменить id с 'layout' на что-нибудь позаковыристее, сам на подобное наткнулся, оказывается EXT сам в процессе работы создает кучу своих ID, иногда они могут перекрыться с пользовательскими.
2. Вместо
var layout = Ext.getCmp('layout');
var a = Ext.getCmp('gr');
a.html = 'new HTML';
layout.doLayout();
можно вроде проще:
Ext.get('gr').dom.innerHTML = 'new HTML';
Ext.get('layout').doLayout();