Grid 将extjs 4.0.7迁移到4.1.1的问题
在尝试从extjs 4.0.7切换到4.1.1时,我遇到了一些问题 第一个问题如下: 我有两个树面板,它们在一个列布局中。一个挨着另一个。我的应用程序将一组节点加载到左侧面板中,然后您可以选择将其中一些节点移动到另一个面板中。但是,包含所有节点的面板没有显示滚动条,因此我无法突然看到大约1/3的节点。我在4.0.7中遇到了一个半类似的问题,在我移动另一个节点之前,如果面板已满,我无法看到最后一个节点被移动。我用以下几行代码修复了这个问题:Grid 将extjs 4.0.7迁移到4.1.1的问题,grid,extjs4,scrollbar,extjs4.1,treepanel,Grid,Extjs4,Scrollbar,Extjs4.1,Treepanel,在尝试从extjs 4.0.7切换到4.1.1时,我遇到了一些问题 第一个问题如下: 我有两个树面板,它们在一个列布局中。一个挨着另一个。我的应用程序将一组节点加载到左侧面板中,然后您可以选择将其中一些节点移动到另一个面板中。但是,包含所有节点的面板没有显示滚动条,因此我无法突然看到大约1/3的节点。我在4.0.7中遇到了一个半类似的问题,在我移动另一个节点之前,如果面板已满,我无法看到最后一个节点被移动。我用以下几行代码修复了这个问题: treePanel1.invalidateScrolle
treePanel1.invalidateScroller();
treePanel2.invalidateScroller();
这些行在4.1.1中被弃用,问题似乎变得更糟。是否有人遇到过类似的问题,以及如何恢复滚动条
与我的UI相关的第二个主要问题:
我在其他地方有两个相邻的网格,布局类似于树面板。我已经在两个网格之间设置了拖放。同样,所有节点都从左侧网格开始,并可以选择将一些节点拖动到右侧网格中。但是,右侧网格现在没有显示为完整大小,它默认为一条细条。因此,DD功能仍然存在,如果您知道将节点拖动到那个小片段的话。然后,棉条膨胀到足以容纳单个节点,依此类推。那么,如何使其恢复默认的全尺寸。为什么extjs 4.1.1会导致这些问题?我必须在任何代码上下功夫,但如果绝对必要的话,我可以。然而,根据我的描述,如果有人熟悉这类问题,那就太好了
编辑:此外,我在网格最右边的列中有一个组合框。当我单击更改其中一个组合框时,会弹出一个小滚动条,它会阻止下拉按钮。他们对这个版本做了什么
这里是布局定义,我遇到了第一个问题,滚动条在需要时不会显示在面板上:
{
xtype: 'panel',
title: 'Select fields',
defaults: {
border: false,
height: '100%'
},
layout: 'column',
items: [
{
xtype: 'treepanel',
itemID: 'choicesTreePanel',
title: 'Choose from below fields',
height: '100%',
multiSelect: true,
store: choicesTree,
rootVisible: false,
columnWidth: .44},
{
xtype: 'panel',
columnWidth: .06,
layout: {
type: 'vbox',
align: 'center'
},
defaults: {
margins: "15 0 0 0"
},
items: [
{
xtype: 'button',
text: '==>'},
{
xtype: 'button',
text: '<=='},
{
xtype: 'button',
text: 'RST'}
]},
{
xtype: 'treepanel',
itemId: 'chosenTreePanel',
title: 'Fields',
border: true,
store: chosenFields,
rootVisible: false,
columnWidth: .44,
viewConfig: {
plugins: {
ptype: 'treeviewdragdrop,
dragText:'
dragginggggg '
},
ddGroup: '
fieldsDD '
}
},
{xtype:'
panel ',
columnWidth:.06,
layout:{
type:'
vbox ',
align:'
center '
},
items: [
{
xtype: '
button ',
text: '
UP '},
{
xtype: '
button ',
text: '
DOWN '}
]
}
]
}
{
xtype:'面板',
标题:“选择字段”,
默认值:{
边界:错,
身高:“100%”
},
布局:“列”,
项目:[
{
xtype:'树面板',
itemID:“ChoiceTreePanel”,
标题:“从以下字段中选择”,
高度:“100%”,
多选:对,
商店:精选树,
rootVisible:false,
列宽度:.44},
{
xtype:'面板',
列宽:.06,
布局:{
键入:“vbox”,
对齐:“居中”
},
默认值:{
页边距:“15 0 0”
},
项目:[
{
xtype:'按钮',
文本:'==>'},
{
xtype:'按钮',
文本:“(也许最好将您的问题分成多个独立的问题)
关于面板高度和滚动条的第一个问题:
在您的示例中,我会问自己这样一个问题:“我希望树面板的高度与什么相关?”
当您不关心与其父元素相关的子元素的高度时,通常使用列布局:子元素的高度之和定义了列的高度,如您在此处所见:
您没有在列上定义任何高度,因此它使用子元素的高度(在您的示例中没有高度)。我不知道Ext在这种情况下做了什么,但基于此,它不能做任何聪明的事情
如果希望树面板使用包含面板的整个高度,可以使用“对齐”属性设置为“拉伸”的hbox布局。
这可能也会修复滚动条,因为可以正确地进行高度计算。
不要忘记删除“height:100%”和“autoscroll”属性,因为它们会混淆内容
最后,将树面板的布局更改为“适合”可能会得到您想要的结果
您的代码可能会变成:
{
xtype: 'panel',
layout: {
type: 'hbox',
align: 'stretch'
},
items: [{
xtype: 'treepanel',
layout: 'fit',
flex: 44,
...
}, {
flex: 6,
...
},{
flex: 44,
...
}]
}
我没有在你的代码上测试这个答案。请提供完整的工作代码示例(带有虚拟存储)我将对其进行测试。尽管您正在寻找基于百分比的高度解决方案,但也可以使用定值高度。在许多情况下,这将避免您的问题。例如,将面板高度设置为600,这将解决滚动条问题
这并不能解决您在基于百分比的布局中的问题。希望其他人能提供帮助。补充说明:我认为您的问题与4.1中的错误没有多大关系,而是由于此版本中的布局渲染更好。