如何按有很多关系对 EXTJS 4.2.1 网格行进行分组?
How to group EXTJS 4.2.1 grid rows by a has many relationship?
我想知道是否可以通过商店的 hasMany 元素中的列集对 extjs 网格进行分组。我的例子不够全面 re-create 任何东西,但我只是在寻找是的,这里是一个例子,或者不是。谢谢!
我设置了一个 extjs 存储,它为图书馆书籍填充 UI。 bookStore 中有一个 hasMany 关系指向一个模型,该模型表示每次图书被检出的时间。此 hasMany 模型绑定到显示结帐列表的图书 UI 中的网格面板。
我想根据图书馆成员签出该书的网格面板行进行分组(假设 3 个用户每人签出两次,目前我有 6 行包含 memberName 和 checkoutDate。我想按 memberName 显示三个行对这些行进行分组headers 每行下面有两行显示 checkoutDate)。
无论我尝试哪种配置,甚至自定义 groupFields,以及从商店引用 'child' objects 的不同方式(例如
)
这就是模型的大致样子,只是为了帮助阐明我的解释。我知道这在语法上可能不完全正确,但我只是想看看我的目标是否可行以及我可以采取什么方法。
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 : '';
}
}]
到目前为止,似乎用 grouping is impossible, but there are several other potential grid solutions/plugins that may work, like one of the types of Summary Grid, or Tree Grid. Another option besides two separate stores might be something like what is in the Data Binding examples 来做这件事。
我想知道是否可以通过商店的 hasMany 元素中的列集对 extjs 网格进行分组。我的例子不够全面 re-create 任何东西,但我只是在寻找是的,这里是一个例子,或者不是。谢谢!
我设置了一个 extjs 存储,它为图书馆书籍填充 UI。 bookStore 中有一个 hasMany 关系指向一个模型,该模型表示每次图书被检出的时间。此 hasMany 模型绑定到显示结帐列表的图书 UI 中的网格面板。
我想根据图书馆成员签出该书的网格面板行进行分组(假设 3 个用户每人签出两次,目前我有 6 行包含 memberName 和 checkoutDate。我想按 memberName 显示三个行对这些行进行分组headers 每行下面有两行显示 checkoutDate)。
无论我尝试哪种配置,甚至自定义 groupFields,以及从商店引用 'child' objects 的不同方式(例如
这就是模型的大致样子,只是为了帮助阐明我的解释。我知道这在语法上可能不完全正确,但我只是想看看我的目标是否可行以及我可以采取什么方法。
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 : '';
}
}]
到目前为止,似乎用 grouping is impossible, but there are several other potential grid solutions/plugins that may work, like one of the types of Summary Grid, or Tree Grid. Another option besides two separate stores might be something like what is in the Data Binding examples 来做这件事。