We have developed an application based on EXT JS 2.2. The application runs well in IE 8, currently we are planning to roll out to IE9 / IE10. We see some issues when we run same application on IE 9/IE 10.

Having issues with Grid Panel, it throws " OBJECT DOES NOT SUPPORT THIS PROPERTY OR METHOD" runtime error from the below lines of code.

Can someone help us in this regard.

roleSearchGrid = new Ext.grid.GridPanel({
store: rolesGridStore, //store
height: 140,
renderTo:'searchRolesDiv', //render to HTML Object
id: 'roleSearchGrid',
hiddenhowRoleSearchGrid, //show role search grid?
viewConfig: { emptyText: 'No records found' }, //message to show when no data found
sm: new Ext.grid.RowSelectionModel({singleSelect:true}), //define selection model - single row selection at any time
listeners: { //listeners
cellclick : function( Grid , rowIndex, columnIndex, e ) //when grid cells are clicked
var selectionModel = Ext.getCmp('roleSearchGrid').getSelectionModel(); //get the selection model
var record = selectionModel.getSelected(); //get the record clcked
if (columnIndex == 0 || columnIndex == 1) // if clicked on + image or role name cells
if (!clickedOnImage) // check if clicked on information image or role name
/*This below block checks if the selected role is a part of a composite role defined app configuration
if Yes stops user from selecting the role */
if (grc_cmn_rolecheck.indexOf(record.data.roleName) >= 0) // Model My Access By
Ext.MessageBox.alert("Error", "Role " + record.data.roleName + " cannot be requested. This role is provisioned only during onboarding (through SIMS).").getDialog().setPosition(150,100);
Ext.getCmp('roleSearchGrid').getEl().mask('Adding..', 'x-mask-loading'); //start adding message
var con = new Ext.data.Connection(); //make request object
/* this below process is defined to check if the user exists in the backend system or not. This is checked only for R/3, BW and EBP */
var baseURL='/grc/GetRoleDetails?roleName='+ record.data.roleName +'&systemid='+record.data.application+
'&check=true'; //define servlet URL
con.request({ url: baseURL , // where to post to..
method: 'GET',
callback: function(opts, success, response) { //call back
if (!success || ("OK" != response.responseText)) { // if there is no user
Ext.getCmp('roleSearchGrid').getEl().unmask(); //unmask and show no user messge
Ext.MessageBox.alert("Error", roleNotDefinedMsg.replace(
else // if ther is user
var selectedRole = record.data.roleName; //get role name
var selectedSystem = record.data.application; //get system id
var roleSelectCheck = false;
//loop through selected roles grid to see if role is already selected
Ext.getCmp('selectedRolesGrid').getStore().each(function(record1) {
if (record1.data.roleName == selectedRole && record1.data.application == selectedSystem) //if already selected
Ext.getCmp('roleSearchGrid').getEl().unmask(); //unmask
Ext.MessageBox.alert("Error", roleSelectedMsg).getDialog().setPosition(150,100); //show message
roleSelectCheck = true; //role selected
}); //end loop selected records
if (!roleSelectCheck) //if role is not selected
var newPosition = Ext.getCmp('selectedRolesGrid').getStore().getCount()+1; //get the record position
//insert record into selected roles grid
} //end role selected check
} //if user exists check
} //end call back
}); //end request object
} // end check composite role
} //end check cliced on image
} //end check column click index
clickedOnImage = false; //set clicked on image to false
} //end cell click event
}, //end listeners
cm: new Ext.grid.ColumnModel([ //define columns to show in the grid
xtype: 'templatecolumn',
header: '',
width: 30,
tpl: '<img src="../images/shared/icons/fam/add.png"/>',
tooltip: 'Click to select role'
xtype: 'gridcolumn',
header: 'Role Name',
dataIndex: 'roleName',
tooltip: 'Click to see t-codes in the role',
width: 300,
renderer: cellRenderer
xtype: 'gridcolumn',
header: 'Role Description',
dataIndex: 'roleDescription',
width: 390
]) //end column model
}); //end role search grid definition

SCRIPT438: Object doesn't support this property or method