我在使用Internet Explorer时遇到了一些问题。我有一个Window
,其中一个Fieldset
包含一些Components
- 所有ExtJS元素。
当用户将窗口大小调整为小于显示其内容所需的大小时,窗口可调整大小并且想要滚动条出现。
这在FireFox 3.6.x中运行良好,但在使用IE7或IE8时,我得到以下结果:
为什么我会在Internet Explorer中获得此结果,而且不应该按照我的意愿行事?
用于生成上述结果的代码是:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Online example</title>
<link rel="stylesheet" type="text/css" href="http://dev.sencha.com/deploy/dev/resources/css/ext-all.css" />
<script type="text/javascript" src="http://dev.sencha.com/deploy/dev/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="http://dev.sencha.com/deploy/dev/ext-all.js"></script>
</head>
<body>
<script type="text/javascript">
Ext.onReady(function(){
MyWindow = Ext.extend(Ext.Window, {
resizable: true,
closable: true,
width: 400,
closeAction: 'hide',
title: 'Window',
autoScroll: true,
layout: 'fit',
initComponent: function () {
var config = {
items:
[
{
xtype: 'fieldset',
title: 'Fieldset',
layout: 'form',
items:
[
{
xtype: 'numberfield',
fieldLabel: 'Label'
}, {
xtype: 'checkbox',
fieldLabel: 'Label',
checked: true
}, {
xtype: 'checkbox',
fieldLabel: 'Label',
checked: true
}, {
xtype: 'checkbox',
fieldLabel: 'Label',
checked: true
}
]
}
]
}
Ext.apply(this, config);
// Config object has already been applied to 'this' so properties can
// be overriden here or new properties (e.g. items, tools, buttons)
// can be added, eg:
// Call parent (required)
MyWindow.superclass.initComponent.apply(this, arguments);
}
});
AWindow = new MyWindow();
AWindow.show();
});
</script>
</body>
</html>
我知道这个问题与我的previous question非常相似,但我希望这次我能更清楚地了解我的要求。 - 它与IE7和IE8都有关。
答案 0 :(得分:1)
我通过将字段集包装在面板中,并将自动滚动从窗口移动到面板来实现此示例:
MyWindow = Ext.extend(Ext.Window, {
resizable: true,
closable: true,
width: 400,
height: 200,
closeAction: 'hide',
title: 'Window',
layout: 'fit',
initComponent: function () {
var config = {
items: {
xtype: 'panel',
autoScroll: true,
items: [
{
xtype: 'fieldset',
title: 'Fieldset',
layout: 'form',
items:
[
{
xtype: 'numberfield',
fieldLabel: 'Label'
}, {
xtype: 'checkbox',
fieldLabel: 'Label',
checked: true
}, {
xtype: 'checkbox',
fieldLabel: 'Label',
checked: true
}, {
xtype: 'checkbox',
fieldLabel: 'Label',
checked: true
}
]
}
]
}
}
Ext.apply(this, config);
// Config object has already been applied to 'this' so properties can
// be overriden here or new properties (e.g. items, tools, buttons)
// can be added, eg:
// Call parent (required)
MyWindow.superclass.initComponent.apply(this, arguments);
}
});
AWindow = new MyWindow();
AWindow.show();
});
情侣笔记:
答案 1 :(得分:1)
我在给窗口时发现:
bodyStyle: 'position:relative;'
FieldSet 保留在窗口内。为什么需要这个我不知道,如何设置这个属性更多 Extjs'y 方式。
如果您有任何意见,我欢迎他们希望获得启发:)