【问题标题】:Ext JS grid with grouping expand one row on click带有分组的 Ext JS 网格在单击时展开一行
【发布时间】:2013-10-29 20:07:35
【问题描述】:

我有一个 Ext JS 网格,它使用 ftype: 'grouping'groupHeaderTpl: ...' 创建组行。我想确保当用户单击组行时,所有其他组行都被折叠,并且该组行被展开。

根据this page,有一个groupclick可以订阅的事件,还有collapseAll()expand()的方法。

我已成功订阅groupclick 事件并成功调用collapseAll() 方法。但是,我无法让expand() 方法工作。

问题来了,expand() 方法要求我传入groupName,我不知道它到底想要什么。在groupclick 事件中,我可以访问一个名为group 的变量,但该变量始终是undefined

我的问题:expand() 方法要求的groupName 是什么,我如何从groupclick 事件中访问它?是否需要在模型或网格中我看不到的地方定义?

这是我的控制器代码:

 onGroupClick: function (view, node, group, e, eOpts) {
            console.log(view);
            console.log(node);
            console.log(group) //this is always undefined

            view.features[0].collapseAll(); //works fine
            view.features[0].expand(groupName);  //what goes here for groupName???
        },

【问题讨论】:

    标签: grid grouping expand extjs4.2


    【解决方案1】:

    group 变量保存组名。所以下面的代码应该可以完成这项工作:

    groupclick: function (view, node, group, e, eOpts) {
        view.features[0].collapseAll(); 
        view.features[0].expand(group);
    }
    

    如果您的group 变量未定义,则可能您的分组定义有问题。在商店中,您应该已经定义了 groupField,这是 Model 中的字段名称(也许该字段对于记录是空的?)。

    工作样本:http://jsfiddle.net/CEJY5/

    【讨论】:

    • 嗯...我昨天一定是拼错了。今天group 中有正确的数据,一切正常。感谢您的完整回答。如果不是你的 jsfiddle 例子,我不会相信你:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-16
    • 1970-01-01
    相关资源
    最近更新 更多