Sometimes a web page layout may be too complicated or time-consuming to develop purely in ExtJS or perhaps you want to convert an existing html page to use ExtJS components. In either case there is a simple and straightforward way to inject ExtJS components into a complex html page. There are only a few simple steps needed to accomplish this:
- create the html
- fetch the html
- load the html
- plug in the ExtJS components
The following methods are from myScript.js.
This method loads the html using an Ajax request:
initStructure : function() {
Ext.Ajax.request({
url : 'myPage.html',
disableCaching : false,
method : 'GET',
success : this.onStructureLoaded.createDelegate(this)
});
} // initStructure()
This success handler puts the html text into an ExtJS XTemplate and then loads that into the body of this component (an ExtJS panel or window):
onStructureLoaded : function(response, options) {
var template = new Ext.XTemplate(
response.responseText
});
this.body.update(template.apply({
idBase : this.id
}));
this.initMyButton();
...
} // onStructureLoaded()
Once the html has been loaded into the DOM we can start plugging our ExtJS components into it:
initMyButton : function() {
new Ext.Button({
applyTo : this.getCustomId('myButton'),
text : 'My Button',
handler : this.onMyButtonClick.createDelegate(this)
});
} // initMyButton()
getCustomId : function(name) {
return String.format('{0}_{1}', name, this.id);
} // getCustomId()