PDA

View Full Version : [CLOSED] Composite field with deferredRender does not work on IE



albeva
26 Mar 2010, 3:34 AM
Ext version tested: 3.2 RC
Adapter used: Ext
css used: only default ext-all.css
Browser versions tested against:
IE6
IE7
IE8
FF3.6
Safari 4
Chrome 4

Operating System: Windows 7 Pro 64bit
Description:
As the title says -using compositefield with deferredRender option on the tab panel fails with IE browsers. I think this is linked to my previous bug report regarding the compositeField ( http://www.extjs.com/forum/showthread.php?t=94686 )
Test Case:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<title>Test</title>

<!-- CSS -->
<link rel="stylesheet" href="resources/css/ext-all.css" type="text/css" media="screen" />

<!-- Javascript -->
<script src="ext-base-debug.js" type="text/javascript"></script>
<script src="ext-all-debug.js" type="text/javascript"></script>

<script type="text/javascript">
//<![CDATA[
Ext.onReady(function(){
// This is a simple panel we are testing
// the composite field with.
var simplePanel = {
title : 'Test',
layout : 'form',
items : [{
fieldLabel: 'Field',
xtype : 'compositefield',
items : [{
xtype : 'checkbox'
}, {
xtype : 'textfield',
flex : 1
}]
}]
};
// simple window to test
var wnd = new Ext.Window({
title : 'test',
width : 350,
height : 250,
plain : true,
layout : 'fit',
items : [{
xtype : 'tabpanel',
border : false,
activeItem: 0,
// setting deferredRender to false will
// fail on IE 6, 7 and 8:
// Invalid argument. ext-all-debug.js,
// line 7001 character 9
deferredRender: false,
items : [simplePanel, simplePanel]
}]
});
wnd.show();
});
//]]>
</script>
</head>
<body>
<noscript>This application requires JavaScript enabled browser.</noscript>
</body>
</html>

Jamie Avins
26 Mar 2010, 8:03 AM
If you are not going to use deferredRender, you pretty much have to use layoutOnTabChange. This will be noted in the 3.2 notes. If you use layoutOnTabChange, this will work just fine.

albeva
26 Mar 2010, 8:12 AM
I don't mean to sound arrogant or anything -but please do test things out before responding. This bug causes JavaScript error in IE and adding layoutOnTabChange does not fix this issue.

Jamie Avins
26 Mar 2010, 8:20 AM
Nor do I, but I did test your case with IE6, IE7, and IE8 and have no errors with the suggested change. I do use the latest version of 3.2 which maybe fixed an issue that you are having. But you provided no details as to a javascript error and I don't see one.

albeva
26 Mar 2010, 8:25 AM
Ok cool if its fixed then great.

As for the error I had it in the comment. Sorry should have been more clear:
// setting deferredRender to false will
// fail on IE 6, 7 and 8:
// Invalid argument. ext-all-debug.js,
// line 7001 character 9
deferredRender: false,


cheers

Jamie Avins
26 Mar 2010, 8:31 AM
The source of your error (already fixed in svn):

http://www.extjs.com/forum/showthread.php?t=95131