extjs динамический магазин? - PullRequest
0 голосов
/ 01 июня 2011

Я пытаюсь создать приложение, используя модель MVC, и, хотя большинство вещей идет хорошо, у меня возникают проблемы с новой архитектурой.Проблема в том, что я создал магазин, используя этот

Ext.define('MCMS.store.Items', {
extend: 'Ext.data.Store',
model: 'MCMS.model.Item',
autoLoad: {'limit':10},
pageSize:10,
remoteSort:true,
proxy: {
    url:'/ajax/moduleLoaded.php',  
    actionMethods: 'post',
    extraParams :{'code': code,'toLoad':'latestContet','return':'json','module':Ext.getDom('module').value,'test':function(){console.log(this)}},
    type: 'ajax',
    reader: {
        type: 'json',
        successProperty: 'success',
        root: 'items'

    }
}

});

Это прекрасно работает, но мне нужно, чтобы параметр модуля был динамическим в зависимости от вида, которыйиспользуй это.Допустим, у меня есть 1 сетка, подобная этой

Ext.define('MCMS.view.items.List' ,{
extend: 'Ext.grid.Panel',
alias : 'widget.itemsList',
title : lang.items,
store: 'Items',
loadMask: true,
columns: [
        {header: "#ID", width: 60, dataIndex: 'id', sortable: true,filter: {type: 'numeric'}},
        {header: "Title", width: 250, dataIndex: 'title', id:'title', sortable: true,filter: {type: 'string'}},
        {header: "Availability", width: 60, dataIndex: 'active', sortable: true,renderer: function(value, metaData, record, rowIndex, colIndex, store) { if (value == 1) { return '<span style="color:green;">' +lang.yes + '</span>'; } else { return '<span style="color:red;">' + lang.no + '</span>'; } }},
        {header: "Category", width: 200, dataIndex: 'category',sortable:false,renderer: function(value, metaData, record, rowIndex, colIndex, store) {                          
            var cat = new Array;
            Ext.each(value, function(person, index) {
                cat.push('<a href="#showCat" class="catDetails" rel="'+ this.categoryid + '">' + this.category + '</a>');
            });
            return cat.join(' , '); }},
],
selModel: Ext.create('Ext.selection.CheckboxModel'),
columnLines: true,
dockedItems: [ {
        xtype: 'toolbar',
        items: [{
            text:'Add Something',
            tooltip:'Add a new row',
            iconCls:'add',
            itemId:'addItem'
        }, '-', {
            text:'Options',
            tooltip:'Set options',
            iconCls:'option'
        },'-',{
            itemId: 'removeButton',
            text:'Remove Something',
            tooltip:'Remove the selected item',
            iconCls:'remove',
            disabled: true
        }]
    }],
    bbar: {xtype: 'itemsPaging' },
    features: [filters],

});и я использую эту сетку в 3 или 4 разных случаях, но данные должны измениться в зависимости от представления, которое это использует.Все, что мне нужно, это способ как-то изменить параметр модуля.

Ответы [ 3 ]

1 голос
/ 04 января 2013

Попробуйте использовать этот код:

store.getProxy().extraParams.module = newValue;
store.reload();
0 голосов
/ 26 сентября 2011

Вы можете установить дополнительные параметры напрямую

store.getProxy().extraParams.module = newValue;
0 голосов
/ 03 июня 2011

Если я вас правильно понимаю, вам нужно использовать grid.reconfigure () , чтобы изменить структуру сетки и разрешить изменения в ее хранилище.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...