我在应用程序中有两个网格&我正在使用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
答案 0 :(得分:0)
该值将保存到单元格编辑器模糊事件的基础记录中。仅当输入的值无效时,才会将其还原。因此,请检查您是否输入了有效值,以及它是否有助于在https://fiddle.sencha.com
上准备展示