簡體   English   中英

在extjs中選擇其他網格行時不存儲單元格值

[英]Not storing cell value when other grid row is selected in extjs

我在應用程序中有兩個網格,我正在使用rowSelectionModel。 現在,在用戶在可編輯單元格中寫入任何內容之后,然后(不單擊任何位置)單擊主網格行; rowselect函數被調用。

請告訴我將數據保留在單元格中的方法嗎?

/*********main tree *************/
var gridtree = new Ext.ux.maximgb.tg.EditorGridPanel({
            id: 'mainTree',
            store: storeCMP,
            autoScroll: true,
            layout: 'fit',
            cm: colModeltree,
            title: 'Text Execution Form',
            master_column_id: 'NAME',
            width: screen.width - 120,
            height: 170,
            columnWidth: 0.1,
            sm: new Ext.grid.RowSelectionModel({
                singleSelect: true,
                autoExpandColumn: 'NAME',
                listeners: {
                    rowselect: function(sm, row, rec) {
                        renderFloatingArray(); 
                        var sgrid = Ext.getCmp("mainTree");
                        if (rec.data.level === 0) {
                            titlegrid = rec.data.NAME;
                            Ext.getCmp("questionGrid").hide();
                            Ext.getCmp("sampleGrid").hide();
                        } else if (rec.data.level === 1) {
                            titlegrid = rec.data.NAME;
                            Ext.getCmp('sampleGrid').setTitle('Samples for   ' + titlegrid + ' ');
                            if (F.TRO_GRC_OBJECT_TYPE.read(1) === "") {
                                filterdataQs(gridStoreQs, rec.data.TST_TEST_EXECUTION_ID, rec.data.TESTING_ID);
                                if (Ext.getCmp('questionGrid').getStore().data.items.length === 0) {
                                    Ext.getCmp("questionGrid").hide();
                                } else {
                                    Ext.getCmp('questionGrid').setTitle(' Questions for ' + titlegrid + ' ');
                                    Ext.getCmp("questionGrid").show();
                                }
                                Ext.getCmp('sampleGrid').setTitle('Samples for ' + titlegrid + ' ');
                                Ext.getCmp("sampleGrid").show();
                                filterdataQs(gridStoreQs, rec.data.TST_TEST_EXECUTION_ID, rec.data.TESTING_ID);
                                filterdatasample(sampleGridstore, rec.data.TST_TEST_EXECUTION_ID, rec.data.TESTING_ID);
                            } else {
                                Ext.getCmp("questionGrid").hide();
                                Ext.getCmp("sampleGrid").hide();
                            }
                        } else if (rec.data.level == 2) {
                            Ext.getCmp("questionGrid").show();
                            Ext.getCmp("sampleGrid").show();
                            filterdataQs(gridStoreQs, rec.data.TST_TEST_EXECUTION_ID, rec.data.TRID_OBJID_ORG_ID);
                            filterdatasample(sampleGridstore, rec.data.TST_TEST_EXECUTION_ID, rec.data.TRID_OBJID_ORG_ID);
                        }}}}),
            listeners: {
                viewready: function(g) {
             if (F.TRO_GRC_OBJECT_TYPE.read(1) === "") {
                        g.getSelectionModel().selectRow(1);
                    } else {
                        g.getSelectionModel().selectRow(2);
                    }
                },

                'rowcontextmenu': gridContextMenu


            },

            viewConfig: {
                enableRowBody: true


            },

            plugins: [{
                ptype: 'editable-grid'
            }]

        });

問題-網格

var grid2 = new Ext.grid.EditorGridPanel({
            id: 'questionGrid', 
            store: gridStoreQs,
            hidden: false,
            layout: 'fit',
            autoScroll: true,
            sm: new Ext.grid.RowSelectionModel({
                singleSelect: true,
                listeners: {
                    rowselect: function(sm, row, rec) {
                        currentgrid = 'questionGrid';}}}),
            width: screen.width - 120,
            autoHeight: true,
            columnLines: true,
            viewConfig: {
            },
            title: 'Question Grid',
            cm: colModelQs,
            enableKeyEvents: true,
            plugins: [{ ptype: 'editable-grid' }],
            onEditComplete: function(ed, value, startValue) {
            if (ed.field.getXType() == "numberfield" || ed.field.getXType() == "textfield") {
                    this.editing = false;
                    this.activeEditor = null;
                    ed.un("specialkey", this.selModel.onEditorKey, this.selModel);
                    var r = ed.record;
                    var field = this.colModel.getDataIndex(ed.col);
                    var e = {
                        grid: this,
                        record: r,
                        field: field,
                        originalValue: startValue,
                        value: value,
                        row: ed.row,
                        column: ed.col,
                        cancel: false
                    };
                    if (this.fireEvent("validateedit", e) !== false && !e.cancel) {
                        r.set(field, value);
                        delete e.cancel;
                        this.fireEvent("afteredit", e);
                    }

                    this.view.focusCell(ed.row, ed.col);
                }
            },
            listeners: {
                'afteredit': afterTreeGridCellEdit
            }
        });

使用的插件:editable-grid

該值將保存到單元格編輯器模糊事件的基礎記錄中。 僅當輸入的值無效時,它才被還原。 因此,請檢查您是否輸入了有效值,並且它是否無助於在https://fiddle.sencha.com上准備展示櫃

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM