Javascript 如何根据一个具有多个关系的组对EXTJS 4.2.1网格行进行分组?

Javascript 如何根据一个具有多个关系的组对EXTJS 4.2.1网格行进行分组?,javascript,extjs,grouping,extjs4.2,gridpanel,Javascript,Extjs,Grouping,Extjs4.2,Gridpanel,我想知道是否可以通过存储区的hasMany元素中的列集对extjs网格进行分组。我的例子不够全面,无法重新创建任何内容,但我只是在寻找一个是,这里有一个例子,或者一个不是。谢谢 我建立了一个extjs存储,用于填充图书馆图书的UI。书店中有一个hasMany关系,它指向一个模型,该模型表示每次借出图书的时间。该hasMany模型绑定到书的UI中的gridpanel,其中显示签出列表 我想对gridpanel中的行进行分组,库成员借出图书时使用这些行(假设3个用户每人借出两次,目前我有6行带有me

我想知道是否可以通过存储区的hasMany元素中的列集对extjs网格进行分组。我的例子不够全面,无法重新创建任何内容,但我只是在寻找一个是,这里有一个例子,或者一个不是。谢谢

我建立了一个extjs存储,用于填充图书馆图书的UI。书店中有一个hasMany关系,它指向一个模型,该模型表示每次借出图书的时间。该hasMany模型绑定到书的UI中的gridpanel,其中显示签出列表

我想对gridpanel中的行进行分组,库成员借出图书时使用这些行(假设3个用户每人借出两次,目前我有6行带有memberName和checkoutDate。我想按memberName对这些行进行分组,显示三个标题,每个标题下有两行显示checkoutDate)

无论我尝试哪种配置,甚至自定义组字段,以及从存储中引用“子”对象的不同方式(例如 )

这大致上就是模型的样子,只是为了帮助澄清我的解释。我知道这在语法上可能不完全正确,但我只是想知道我的目标是否可能,以及我可以采取什么方法

Ext.define('Book.model.BookModel', {
    extend : 'Ext.data.Model',
    alias  : 'model.BookModel',
    fields : [{
        name: 'Title',
        type: 'String'
    }],
    hasMany:[{
        name: 'checkouts',
        model: 'Book.model.Checkouts'
    }]
});

Ext.define('Book.model.Checkouts', {
    extend : 'Ext.data.Model',
    alias  : 'model.Checkouts',
    fields: [{
        name: 'Name',
        type: 'string'
    },{
        name: 'checkoutDate',
        type: 'date'
    }],
    associations : [{
        model: 'Book.store.BookStore',
        type : 'belongsTo', 
        name: 'bookStore'
    }]
});

Ext.define('Book.store.BookStore', {
extend: 'Ext.data.Store',
model : 'Book.model.BookModel',
groupField: '????',
//etc.
});
我尝试过的配置:

--店内:

groupField: 'Checkouts.Name',

groupField: 'checkouts.Name',
--在网格配置中:

groupers: [{ftype:'grouping'}],
groupers:  [{
                      property: 'Checkouts.name',//and with checkouts.name
                      root: 'data',
                      groupFn: function (val) {
                         return val === val ? val : '';
                    }
           }]

到目前为止,这似乎是不可能的,但还有其他几种可能的工作,如一种类型的,或。除了两个单独的商店之外,另一个选择可能是类似于中的东西。

您是否有一把小提琴,我们可以随便摆弄一下。。。也许你已经试过了?我在下面的问题中列出了我试过的。但除了一个解决方案,我还想知道这是否可行?嗯,就是这样
checkout
从技术上讲是一家商店,对吗?所以做
签出。name
并不意味着什么。。。您必须有一个单数的
签出
模型才能获得name属性。基本上,我的意思是你的网格存储应该是
签出
,然后你的grouper属性应该是
名称
。有两个存储,我知道有更简单的方法可以让UI看到我所描述的,但我希望有人能明确地说我所描述的分组是否可行。另外,签出是Ext.data.model,我已将存储添加到我的问题中。我只是想得到一个对这个字段的引用,希望相同的对象访问方法能适用于这个hasMany模型。然后答案是否定的,它不能像你期望的那样工作。对,我试着用外壳来区分这两个,因为你的下c看起来是商店实例。。。仅仅从建筑的角度来看,你的模型不应该是复数的,因为它们是单数单位。商店应为复数形式。至少,这是我遵循的惯例。