对于 Ext.tree.Panel 节点,即使使用了 useArrow 属性,也不会显示箭头按钮

Posted

技术标签:

【中文标题】对于 Ext.tree.Panel 节点,即使使用了 useArrow 属性,也不会显示箭头按钮【英文标题】:For Ext.tree.Panel nodes, arrow button is not displayed, even though useArrow property is used 【发布时间】:2016-06-14 11:39:14 【问题描述】:

对于Ext.tree.Panel 节点,即使使用了useArrow 属性,也不会显示箭头按钮。在节点左侧移动时,指针正在显示,但箭头的可见性是错误的。

我该如何解决这个问题??

给出下面的代码,我用过。

 Ext.create('Ext.tree.Panel', 
    useArrows: true,
    autoScroll: false,
    animate: true,
    enableDD: false,
    title: 'Configuration',
    width: 200,
    height: 150,
    rootVisible: false,
    store: [
        root: 
            expanded: true,
            children: [
                text: "Configure Application",
                expanded: true,
                children: [
                    text: "Manage Application",
                    leaf: true
                , 
                    text: "Scenario",
                    leaf: true
                ]
            , 
                text: "User Configuration",
                expanded: true,
                children: [
                    text: "Manage User",
                    leaf: true
                , 
                    text: "User rights",
                    leaf: true
                ]
            , 
                text: "Test Configuration",
                leaf: true,
                children: [
                    text: "Manage User",
                    leaf: true
                , 
                    text: "User rights",
                    leaf: true
                ]
            ]
        
    ]
);

附上 UI 树的截图。

]

我正在使用 extjs-4.2.2

【问题讨论】:

你做了什么调试? 对不起,如果我犯了任何愚蠢的错误。实际上,我是 Extjs 的新手,通常用于进行浏览器级别的调试(F12)。在这种情况下,没有错误 您是否在使用 Sencha Cmd,这是您在项目中的第一个 TreeGrid?然后重新编译项目,CSS应该会更新。项目的未编译版本仍然依赖于样式表的编译版本,因为浏览器通常无法读取未编译的 SCSS 代码。如果代码中没有 TreeGrid,则 TreeGrid SCSS 不会编译到 CSS 中,因此对于您的第一个 TreeGrid,它会丢失。 @Alexander 我正在使用 Maven。我建立了完整的项目。请建议我如何检查天气 css 是否可用。 【参考方案1】:

我更改了您的商店定义,现在如果在配置 json 中将 useArrows 属性设置为 true,它会按预期显示箭头。

你可以在煎茶小提琴中试试。

var root = 
    expanded: true,
    children: [
        text: "Configure Application",
        expanded: true,
        children: [
            text: "Manage Application",
            leaf: true
        , 
            text: "Scenario",
            leaf: true
        ]
    , 
        text: "User Configuration",
        expanded: true,
        children: [
            text: "Manage User",
            leaf: true
        , 
            text: "User rights",
            leaf: true
        ]
    , 
        text: "Test Configuration",
        leaf: true,
        children: [
            text: "Manage User",
            leaf: true
        , 
            text: "User rights",
            leaf: true
        ]
    ]
;

Ext.application(
    name: 'Fiddle',

    launch: function() 
        Ext.create('Ext.tree.Panel', 
            useArrows: true,
            autoScroll: false,
            animate: true,
            enableDD: false,
            title: 'Configuration',
            width: 400,
            height: 400,
            renderTo: Ext.getBody(),
            rootVisible: false,
            store: Ext.create('Ext.data.TreeStore', 
                root: root
            )
        );
    
);

【讨论】:

我以前甚至现在都尝试过同样的方法,但仍然无法正常工作。是不是因为我用的是Extjs版本(extjs-4.2.2)?? 它适用于我在 Sencha fiddle with ExtJs 4.2.1 版本。 它对我有用,一些库路径错误,但浏览器中没有显示错误,例如“404错误” @BijoyBahuleyan 对于类似的 impl,我面临同样的错误。我正在使用 Ext JS 5.1.0.107。我已将 useArrows 设置为 true。但是箭头没有出现。有关如何解决此问题的任何指导?哪个库路径错误?

以上是关于对于 Ext.tree.Panel 节点,即使使用了 useArrow 属性,也不会显示箭头按钮的主要内容,如果未能解决你的问题,请参考以下文章

找出 ExtJs 中 Ext.panel.tree 中的选定项目是不是有子项

解决Ext 4.0.7 tree.Panel横向不出滚动条,纵向滚动条失效的问题

Ext.tree.Panel、itemclick、getTreeStore() 在 5.x 中找不到,但在 4.x 中有效

ExtJS4 树形面板问题

如何填充没有子节点或叶子信息的 Ext.data.TreeStore?

ExtJS6 TreePanel树节点合上展开显示不同图标