магазин не определен - PullRequest
1 голос
/ 13 июня 2011

У меня есть эта проблема на ExtJS. Я создал сетку, которая отображается в окне, она будет получать данные JSON из сценария на стороне внешнего сервера. Это плохо работает, но firebug постоянно говорит мне, что хранилище не определено все, что я нажимаю на столбцы в сетке. Можете ли вы помочь мне решить это. Вот мой код:

var fields = [{
    name: "Name",
    type: "text"
}, {
    name: "NSId",
    type: "number"
}, {
    name: "Id",
    type: "number"
}, {
    name: "Version",
    type: "number"
}];

var columns = [{
    header: 'Name',
    id: 'Name',
    width: 160,
    sortable: true,
    dataIndex: 'Name'
}, {
    header: 'NSId',
    id: 'NSId',
    width: 45,
    sortable: true,
    hidden: true,
    dataIndex: 'NSId'
}, {
    header: 'Id',
    id: 'Id',
    width: 30,
    sortable: true,
    hidden: true,
    dataIndex: 'Id'
}, {
    header: 'Version',
    id: 'Version',
    width: 50,
    sortable: true,
    hidden: true,
    dataIndex: 'Version'
}];

var searchAndPickUrl = OcsConfig.url.refto;
var pickerUrl = '?picker=' + config.picker;
var createRefTo = searchAndPickUrl + pickerUrl;

var jsonstore = {
    xtype: 'jsonstore',
    autoDestroy: true,
    fields: fields,
    root: 'candidates',
    idProperty: 'Name',
    url: createRefTo,
    autoLoad: true
};

var cmpGrid = null;

var clickCell = function (trigger) {
        var record = cmpGrid.getSelectionModel().getSelected();
        var selValues = record.data['name'] + ',' + record.data['nsid'] + ',' + record.data['id'] + ',' + record.data['version'];
        Ext.Msg.alert('Name', selValues);
    };

var refToGrid = {
    id: Ext.id(),
    xtype: 'grid',
    store: jsonstore,
    columns: columns,
    stripeRows: true,
    defaults: {
        anchor: '100%'
    },
    autoExpandColumn: 'Name',
    height: 350,
    width: 600,
    title: '',
    stateful: true,
    stateId: 'grid',
    listener: {
        rowdblclick: clickCell
    }
};

var refToWin = function refToInputVal(trigger) {
        var values = config.options || [];
        var cmpWin = null;
        var genId = Ext.id();
        var win = null;

        if (cmpWin === null) {
            win = {
                xtype: 'window',
                title: config.caption || '',
                modal: true,
                items: [{
                    xtype: 'form',
                    id: genId,
                    padding: 5,
                    defaults: {
                        anchor: '100%'
                    },
                    items: [refToGrid]
                }],
                bbar: [{
                    xtype: 'button',
                    text: 'OK',
                    handler: function () {
                        returnValue(trigger, cmpGrid);
                        cmpWin.hide();
                    }
                }, {
                    xtype: 'button',
                    text: 'Cancel',
                    handler: function () {
                        cmpWin.hide();
                    }
                }],

Спасибо.

1 Ответ

1 голос
/ 13 июня 2011

Изменить объявление магазина ...

var jsonstore = new Ext.data.JsonStore({
    autoDestroy: true,
    fields: fields,
    root: 'candidates',
    idProperty: 'Name',
    url: createRefTo,
    autoLoad: true
});
...