# extjs - wie selected items abfragen?

**URL:** <https://forum.shopware.com/t/extjs-wie-selected-items-abfragen/17213>\
**Category:** Shopware 3.5\
**Tags:** programming\
**Created:** [6. Dezember 2013 um 13:06 UTC](https://forum.shopware.com/t/extjs-wie-selected-items-abfragen/17213 "2013-12-06T13:06:54Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![scuba303](https://avatars.discourse-cdn.com/v4/letter/s/3ab097/32.png) [@scuba303](https://forum.shopware.com/u/scuba303)\
**Post date:** [6. Dezember 2013 um 13:06 UTC](https://forum.shopware.com/t/extjs-wie-selected-items-abfragen/17213/1 "2013-12-06T13:06:54Z")

</div>

hallo. versuche mich grade an der backend programmierung. dabei hangel ich mir durch die turials. [http://wiki.shopware.de/Backend\_cat\_871.html](http://wiki.shopware.de/Backend%5C_cat%5C_871.html) nun habe ich meine main.js ` Ext.define('Shopware.apps.SwagProduct.controller.Main', { extend: 'Enlight.app.Controller', init: function() { var me = this; me.control({ 'product-listing-grid': { 'change-products': me.onAssignCategories } }); me.mainWindow = me.getView('list.Window').create({ }).show(); }, onAssignCategories: function () { Ext.Ajax.request({ url: '{url controller=SwagProduct action=assignCategoriesProducts}', method: 'POST', params: { productId: 1 }, success: function(response, operation) { alert('all done'); } }); }, }); Ext.define('Shopware.apps.SwagProduct.view.list.Product', { extend: 'Shopware.grid.Panel', alias: 'widget.product-listing-grid', region: 'center', //grid.getSelectionModel().getSelection(); configure: function() { return { detailWindow: 'Shopware.apps.SwagProduct.view.detail.Window' }; }, createToolbarItems: function() { var me = this, items = me.callParent(arguments); items = Ext.Array.insert(items, 2, [me.createToolbarButton()] ); return items; }, createToolbarButton: function() { var me = this; // Shopware.grid.Panel.getSelectionModel().getSelection(); return Ext.create('Ext.button.Button', { text: 'Produkte ändern', handler: function() { me.fireEvent('change-products', me); } }); } }); ` und würde gerne die checkboxen abfragen und die dazugehörigen id’s in der onAssignCategories verwenden. da wo im moment productId: 1 steht.kann mir jemand einen kleinen tip geben, wie ich auf die checkboxen abfrage? `grid.getSelectionModel().getSelection();` aber ich weiss nicht woher ich grid in meinem ansatz referenziere… extjs anfänger halt. 😉

---

<div class="post-metadata">

**Author:** ![Patrick\_Stahl](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/patrick_stahl/32/7679_2.png) [@Patrick\_Stahl](https://forum.shopware.com/u/Patrick_Stahl)\
**Post date:** [6. Dezember 2013 um 13:53 UTC](https://forum.shopware.com/t/extjs-wie-selected-items-abfragen/17213/2 "2013-12-06T13:53:16Z")

</div>

Hallo scuba303, du hast mehrere Möglichkeiten an das Grid zu kommen. Zum Einen könntest du bspw. beim Aufruf deines Events change-products das Grid als Parameter übergeben. D.h. du zündest irgendwo `me.fireEvent('change-products', aaa, bbb);` aaa und bbb können dann eigene Parameter sein. Diese kannst du anschließend in deinem Controller in der entsprechenden Methode abfangen: `onAssignCategories: function (aaa, bbb) { {...} ` Ein weiterer Weg wäre eine Referenz. Diese definierst du am Anfang deines Controllers, bspw. so: ` refs:[{ ref:'myGrid', selector:'der-alias-des-grids' }] ` Du gibst also eine Art “Name” an und einen Selektor. Der Selektor kann einfach der Alias des Grids sein, also in diesem Fall bspw. alias: ‘widget.der-alias-des-grids’,. Anschließend bekommst du das Grid über me.getMyGrid(), entsprechend dem Namen der Referenz. Ich hoffe das ist einigermaßen verständlich erklärt. Gruß, Patrick :shopware:

---

<div class="post-metadata">

**Author:** ![scuba303](https://avatars.discourse-cdn.com/v4/letter/s/3ab097/32.png) [@scuba303](https://forum.shopware.com/u/scuba303)\
**Post date:** [6. Dezember 2013 um 13:57 UTC](https://forum.shopware.com/t/extjs-wie-selected-items-abfragen/17213/3 "2013-12-06T13:57:40Z")

</div>

cool… danke, glaube, dass hilft mir ein stück weiter!

---

<div class="post-metadata">

**Author:** ![scuba303](https://avatars.discourse-cdn.com/v4/letter/s/3ab097/32.png) [@scuba303](https://forum.shopware.com/u/scuba303)\
**Post date:** [9. Dezember 2013 um 10:43 UTC](https://forum.shopware.com/t/extjs-wie-selected-items-abfragen/17213/4 "2013-12-09T10:43:00Z")

</div>

hmm… so ganz kriege ich es nicht hin. habe versucht den weg über ref zu gehen. `Ext.define('Shopware.apps.SwagProduct.controller.Main', { extend: 'Enlight.app.Controller', refs:[{ ref:'myGrid', selector:'widget.product-listing-grid' }],` beim initalen aufruf des grids kommt dann bei ` onAssignCategories: function (me) { console.log( me.getMyGrid());` schon undefined. bin ich da völlig auf dem falschen dampfer? also die ref muss doch in den teil m,it rein, oder? hier noch mal das „gesamtkunstwerk“ ` Ext.define('Shopware.apps.SwagProduct.controller.Main', { extend: 'Enlight.app.Controller', refs:[{ ref:'myGrid', selector:'widget.product-listing-grid' }], init: function() { var me = this; me.control({ 'product-listing-grid': { 'change-products': me.onAssignCategories(me) } }); me.mainWindow = me.getView('list.Window').create({ }).show(); }, onAssignCategories: function (me) { console.log( me.getMyGrid()); Ext.Ajax.request({ url: '{url controller=SwagProduct action=assignCategoriesProducts}', method: 'POST', params: { productId: 1 }, success: function(response, operation) { } }); }, }); Ext.define('Shopware.apps.SwagProduct.view.list.Product', { extend: 'Shopware.grid.Panel', alias: 'widget.product-listing-grid', region: 'center', //grid.getSelectionModel().getSelection(); configure: function() { return { detailWindow: 'Shopware.apps.SwagProduct.view.detail.Window' }; }, createActionColumnItems: function () { var me = this, items = me.callParent(arguments); items.push({ action: 'notice', iconCls: 'sprite-balloon', handler: function (view, rowIndex, colIndex, item, opts, record) { Shopware.Notification.createGrowlMessage(undefined, 'do some stuff in grid panel'); } }); return items; }, createToolbarItems: function() { var me = this, items = me.callParent(arguments); items = Ext.Array.insert(items, 2, [me.createToolbarButton()] ); return items; }, createToolbarButton: function() { var me = this; //console.log(Shopware.apps.SwagProduct.view.list.Product.Panel.getSelectionModel().getSelection()); return Ext.create('Ext.button.Button', { text: 'Produkte ändern', handler: function() { me.fireEvent('change-products', me); } }); } }); `

---

<div class="post-metadata">

**Author:** ![Patrick\_Stahl](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/patrick_stahl/32/7679_2.png) [@Patrick\_Stahl](https://forum.shopware.com/u/Patrick_Stahl)\
**Post date:** [9. Dezember 2013 um 12:48 UTC](https://forum.shopware.com/t/extjs-wie-selected-items-abfragen/17213/5 "2013-12-09T12:48:14Z")

</div>

Hallo scuba303, du darfst den Teil „widget.“ nicht in den Selektor übernehmen. Versuch’ es stattdessen einmal so: `refs:[{ ref:'myGrid', selector:'product-listing-grid' }],` Dort habe ich lediglich den o.g. String „widget“ und den Punkt entfernt. Dann sollte es bereits funktionieren. Gruß, Patrick :shopware:
