0

ext JS アプリケーションに問題があります。MVC アーキテクチャを使用します。

    Ext.define('ME.controller.Stocks', {
    extend:'Ext.app.Controller',
    models:[
        'Logs'
    ],
    stores:[

        'Logs'

    ],
    views:[
        'portal.portalItems.logGridPanel.LogGridPanel',
        'portal.portalItems.logGridPanel.LogGrid',
        'portal.PortalPanel',
        'portal.PortalDropZone',
        'portal.PortalColumn',
        'portal.Portlet',
        'portal.portalItems.base.Panel',  
    ]
});

「LogGrid」という名前のコンポーネントがビューポートに動的に追加されます。その initcomponent 関数は次のようになります。

initComponent: function()
    {
        var me=this;
var store=  Ext.create('ME.store.Logs', {
            storeId:Utils.formUID(LOGS_GRID.LOGS_STORE_ID, me[FIELDS_MAPPER.BASE_PANEL.CLIENTSIDE_GUID]),
            sorters:[
                {
                    property:FIELDS_MAPPER.LOGS_GRID.LOG_DATE,
                    direction:'DESC'
                }
            ]
        });
        this.store=store;
        this.columns=[
        {
            text:Message.get('console.portal.logGrid.DateHeaderText'),
            dataIndex:FIELDS_MAPPER.LOGS_MODEL.LOG_DATE,
            renderer:Ext.util.Format.dateRenderer('H:i:s<br>d.m.Y')
        },
        {
            text:Message.get('console.portal.logGrid.DepartmentHeaderText'),
            dataIndex:FIELDS_MAPPER.LOGS_MODEL.DEPARTMENT_NAME

        },
        {
            text:Message.get('console.portal.logGrid.ProtectionSystemsHeaderText'),
            dataIndex:FIELDS_MAPPER.LOGS_MODEL.PROTECTION_SYSTEM_NAME
        },
        {
            text:Message.get('console.portal.logGrid.PlanHeaderText'),
            dataIndex:FIELDS_MAPPER.LOGS_MODEL.PLAN_NAME
        },
        {
            text:Message.get('console.portal.logGrid.SourceHeaderText'),
            dataIndex:FIELDS_MAPPER.LOGS_MODEL.SECTION_NAME
        },
        {
            text:Message.get('console.portal.logGrid.MessageTextHeaderText'),
            dataIndex:FIELDS_MAPPER.LOGS_MODEL.EVENT_TYPE_NAME,
            minWidth:200
        },
        {
            dataIndex:FIELDS_MAPPER.LOGS_MODEL.EVENT_STATE_NAME,
            text:Message.get('console.portal.logGrid.StateHeaderText')
            //  renderer:changeStateColor
        }
    ];

        me.callParent(arguments);
    }

ログ ストアは次のとおりです。

Ext.define('ME.store.Logs', {
    extend:'Ext.data.Store',
    model:'ME.model.Logs',
    proxy:{
        type:'ajax',
        url:URLS.JOURNAL_CONTROLLER,
        extraParams:{action:'getEvents'},
        actionMethods:{
            read:'POST'
        },
        reader:{
            type:'json',
            idProperty:FIELDS_MAPPER.LOGS_GRID.LOG_ID
        },
        autoLoad:false
    },
    pageSize:LOGS_GRID.ITEMS_PER_PAGE
});

問題は:

グリッドのインスタンスが 1 つある場合はすべて問題ありませんが、グリッドの新しいインスタンスを追加すると、両方のグリッドから行 (選択モデル) が消えます。このようなバグは、グリッドを折りたたむときにも発生します。便利な場合、グリッド コンポーネントは別のパネルに配置されます。

また、別のストアを使用するグリッドを使用して 1 つのコンテナーに LogsGrid を作成すると、そのようなバグも表示されますが、logGrid の行が別のグリッドに移動するようになりました..どうすればよいかわかりません..2 日目はできます答えが見つからない

4

0 に答える 0