Javascript 在Extjs grid On options select from组合框中,它从网格中删除所有记录的选择
在“从选项中选择”组合中,它将从网格中删除所有记录的选择,甚至在您完成编辑时也将删除当前记录的选择Javascript 在Extjs grid On options select from组合框中,它从网格中删除所有记录的选择,javascript,extjs,extjs4,extjs4.1,extjs-grid,Javascript,Extjs,Extjs4,Extjs4.1,Extjs Grid,在“从选项中选择”组合中,它将从网格中删除所有记录的选择,甚至在您完成编辑时也将删除当前记录的选择 从表中选择所有行 单击最后一列单元格,它将显示用于编辑单元格的组合框,同时所有其他记录将被取消选中这是一个问题 现在,从组合框中选择值并单击任何其他记录或某处,您会注意到编辑的行也会被取消选中 我正在使用4.1.*Extjs,我已经尝试覆盖celledit插件以及CheckboxModel 有没有办法让记录保持选中状态,直到我并没有特别从复选框列中取消选中它 如有任何帮助,我们将不胜感激 嘿,伙
嘿,伙计,我把你的小提琴叉了起来,做了一些改变,我想这可以解决你的问题: 基本上,我用一个
cellclick
事件监听器向网格中添加了一个viewConfig
。首先触发cellclick
事件;在事件处理程序中,我们检查cellIndex
参数的值,以确定单击哪个网格列触发事件。然后,我们将flag变量的值设置为cellIndex
值,这样我们就可以在选择模型的beforedeselect
事件处理程序中访问该值。最后,如果标志值不是0,则在取消选择之前从返回false
代码如下:
var store = Ext.create('Ext.data.Store', {
fields: ['name', 'email', 'region'],
data: [{
name: 'xyz',
email: 'xyz@xyz.com',
region: 'Arizona'
}, {
name: 'xyz',
email: 'xyz@xyz.com',
region: 'Alaska'
}, {
name: 'xyz',
email: 'xyz@xyz.com',
region: 'Alaska'
}, {
name: 'xyz',
email: 'xyz@xyz.com',
region: 'Alabama'
}]
});
var states = Ext.create('Ext.data.Store', {
fields: ['abbr', 'name'],
data: [{
"abbr": "AL",
"name": "Alabama"
}, {
"abbr": "AK",
"name": "Alaska"
}, {
"abbr": "AZ",
"name": "Arizona"
}]
});
var targetedCell = -1;
Ext.create('Ext.grid.Panel', {
id: 'theGrid',
viewConfig: {
listeners: {
cellclick: function(view, cell, cellIdx, record, row, rowIdx, eOpts) {
targetedCell = cellIdx;
}
}
},
title: 'data',
store: store,
width: 400,
renderTo: Ext.getBody(),
selModel: new Ext.selection.CheckboxModel({
checkOnly: true,
listeners: {
beforedeselect: function (thisSelModel, record, idx, eOpts) {
if(targetedCell != 0) {
return false;
}
return true;
}
}
}),
columns: [{
text: 'Name',
dataIndex: 'name',
}, {
text: 'Email',
dataIndex: 'email',
flex: 1,
}, {
text: 'State',
dataIndex: 'region',
editor: {
xtype: 'combo',
store: states,
displayField: 'name',
valueField: 'name',
listeners: {}
}
}],
plugins: {
ptype: 'cellediting',
clicksToEdit: 1
}
});
我认为,当你使用checkboxmodel时,它会以这种方式运行,因为当你使用checkboxmodel时,有两种方法可以选择一行,即使你在点击任何单元格时限制选择一行,你也无法在同一点打开下拉列表。您是否需要复选框模型?您仅出于选择或任何其他特定原因使用它?这是一个框架错误,已在4.2.x中修复。您有可能升级吗?@Harshitsah CheckboxModel有一个checkOnly属性,可以通过行单击禁用选择,即使我将其设置为true,它仍然无法按预期工作。@Alexander不可能升级upgrade@swapnilsolanke然后您可以直接使用网格选择进行发送。不需要复选框,没问题。很高兴这有帮助。