¿Es posible cambiar la tienda de la grilla en ExtJS 4?ExtJS 4 Cambiar la tienda de la grilla sobre la marcha
Por ejemplo, he dos modelos:
User = Ext.define('User',{
extend: 'Ext.data.Model',
[...],
hasMany: 'Product'
});
Product = Ext.define('Product',{
extend: 'Ext.data.Model',
[...]
});
y dos rejillas. La primera rejilla está vinculada con la tienda que utiliza User
modelo y carga datos JSON anidados de back-end, como
{
users: [{
id: 1,
products: [
{id: 1},
{id: 2}
]
}, {
id: 2,
products: [
{id: 3},
{id: 4},
{id: 5}
]
}]
}
Todo lo que quiero conseguir es cuando se hace clic en la fila de la primera rejilla, la segunda rejilla debe mostrar productos del usuario, sin conexión al servidor. Todo lo que sé es que user.products();
devuelve un objeto Ext.data.Store
. Así que la idea es cambiar de tienda de segunda rejilla a user.products();
, pero no hay tal método grid.setStore()
:-)
Gracias de antemano
'reconfigure' hace mucho más que volver a vincular una tienda. Si uno tiene dos tiendas de estructura idéntica pero simplemente quiere cambiar la tienda de respaldo por una grilla, necesitan obtener 'Ext.grid.View' de la tienda llamando a' getView' y llamar al método 'bindStore' con la nueva tienda. –
@jMerliN Recomendaría eso porque va en contra de la API y es posible que vea algunos errores extraños. Puedo ver un problema potencial que surge cuando 'grid.getStore()! = Grid.getView(). Store' No he ejecutado el caso de uso, pero' grid.store.load() 'no desencadenaría una actualización de la vista. 'reconfigure' está diseñado para permitir que la grilla cambie las tiendas y no hay demasiados gastos generales. – pllee