如何解决在网格行 extjs 外部单击时,防止在网格中创建空行
我对 Extjs 的经验并不多。 我有一个网格。它有一栏[IP 地址]。有两个选项卡式按钮,分别是“添加”和“删除”。 点击“添加”,向网格添加一个 IP,“删除”从网格中删除该 IP。
我已为其提供 IP 地址验证。
- 当我输入无效/重复的 IP 地址并在网格行外单击时.. 我创建了一个空行。
实际上我正在使用“CellEditing”插件。
谁能建议我如何摆脱创建的空行!!! 输入无效输入后有什么办法,如果我们也点击外部网格,那么光标应该仍然在同一行的编辑器模式下,不要创建空行。
var grid_example = Ext.create('Ext.grid.Panel',{
selType: 'rowmodel',gridType: 'propsGrid',stateful: true,frame: cfg.frame,stateEvents: [ 'columnschanged' ],stateId: 'propgridis',dockedItems: [
{
xtype: 'toolbar',dock: 'top',items: buttons
}
],store: properties_store_example,columns: [
{
stateId: 'propgridname',text: 'IP',width: 200,dataIndex: 'name',editor: {
xtype: 'textfield',allowBlank: false,validator: function(value) {
var ipVal = Ext.create("Ext.data.validator.IPAddress");
var isFound = properties_store_example.findRecord('name',value);
if (ipVal.validate(value) === true) {
if (isFound){
me.saveButton.setDisabled(true);
return 'IP already exists';
}
me.saveButton.setDisabled(false);
return true;
} else {
me.saveButton.setDisabled(true);
return 'Invalid IP';
}
}
},renderTo: Ext.getBody()
}
],plugins: [
Ext.create('Ext.grid.plugin.CellEditing',{
clicksToEdit: 2
})
]
});
下面是我的“取消编辑”操作。
grid_example.on('canceledit',function(editor,value,startValue,opts){
if(value.record.phantom || !value.record.isValid())
value.record.destroy();
if((value.field === 'name') && (value.value === ''))
myStore.remove(value.record);
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。