2016-05-10 10 views
0

Как передать параметр в хранилище. Я новичок в предложениях ExtJs.Как передать параметр в Store в web api

xtype: 'grid', 
store: { 
type: 'webapi', 
//extraParams: { 
    //ID: 20 
//}, 
//Params: { 
    //ID: 20 
//}, 
api: { 
    read: 'api/Report/GetInfo' 
}, 
autoLoad: true, 
}, 
columns: [ 
{ header: 'All', xtype: 'checkcolumn', dataIndex: 'flag', width: '10%' }, 
{ header: 'Code', dataIndex: 'code', width: '15%' }, 
{ header: 'Name', dataIndex: 'name', width: '15%' },  
{ header: 'State', dataIndex: 'state', width: '15%' } 
], 

Пробовал с помощью Params и extraPrams, но не успех.

+1

Try добавления 'extraParams' к прокси, а не к магазину. –

+0

Кстати, где вы нашли 'store: 'webapi'' в документах? – Alexander

+0

После внесения изменений из store> proxy - это не вызов web api. Нужно ли мне что-то менять – user1893874

ответ

1

Проверить этот путь:

xtype  : 'grid', 
store  : { 
    type : 'webapi', 
    proxy : { 
     type  : "ajax", 
     extraParams: { 
      ID: 20 
     } 
    }, 
    api  : { 
     read: 'api/Report/GetInfo' 
    }, 
    autoLoad: true 
} 

Или вы можете добавить дополнительные Params в сетке в InitComponent() функция:

initComponent: function(){ 
    var me = this, 
     myId = 20; 
    me.callParent(arguments);  
    var store = me.getStore(); 
    store.getProxy().extraParams = { 
     ID:myId 
    } 
} 
+0

Исходная логика initComponent отлично работала для меня .. Большое спасибо – user1893874

0

Попробуйте это, он должен работать

Ext.create('Ext.data.Store', { 
     ... 
    proxy : { 

      type : 'ajax', 
      url : 'url', 
      reader : { 
       rootProperty : 'data', 
      } 
     }, 
     listeners:{ 
      beforeload: function(store){ 
     Ext.apply(this.proxy.extraParams, { 
        "ID" : 20 
       }); 
      } 
     }, 
+0

Пробовал, как вы предполагали, но без успеха :( – user1893874