gpt4 book ai didi

javascript - 带有 CellEditing 的 ExtJs 4 GridPanel : data entered is lost on failed validation

转载 作者:搜寻专家 更新时间:2023-11-01 04:38:20 25 4
gpt4 key购买 nike

我正在使用带有 CellEditing 插件的 ExtJs 网格。它工作得很好,除了当我强加给它的验证失败时,无效值会丢失。

例如,如果我在网格中有一个不允许超过 10 个字符的值的可编辑文本字段,并且用户输入“olympicssucks”,验证将失败并且周围会出现一个红色框文本域。当用户点击字段外时,值“olympicssucks”将丢失。

我希望网格仍然保存无效数据,并保留其周围的红色框。

另一个(可能更清楚)的例子: http://dev.sencha.com/deploy/ext-4.0.0/examples/grid/cell-editing.html尝试编辑第一个单元格值:“Adder's-Tongue”并将其设为空。注意红色框和验证消息。现在点击开箱即用。失败的验证将将单元格恢复为其原始值Adder's-Tongue


tl;dr: 我的问题是,重申一下,我想保留无效值,但仍然有显示红色的验证框在它周围。我确信这是可能的,但它是如何完成的?

我尝试过的:

  1. 我研究了 Ext.Editor,它看起来很有前途,因为它有一个名为 revertInvalid 的配置属性,完全我想要的.不幸的是,CellEditing 插件似乎没有使用Ext.Editor。我试过在网格列的 Editor 字段中提供 Ext.Editor,但生成了不可编辑的文本。
  2. 我已经尝试将 revertInvalid 放在所有可能的地方,但这总是遥不可及。

代码:

    var cellEditing = Ext.create('Ext.grid.plugin.CellEditing', {
clicksToEdit: 1
});

var grid = {
xtype: 'grid', store: dataStore, plugins: [cellEditing],
columns: [
{
text: 'Items', dataIndex: 'items', flex: 1, sortable : false,
editor: {
xtype: 'textfield',
validator: function(value) { //custom validator to return false when value is empty and other conditions}
},
//...
],
tbar: [{
xtype: 'button', text: 'Add ' + type,
handler: function() {
dataStore.insert(0, {items: 'New ' + type});
cellEditing.startEditByPosition({row: 0, column: 0});
}
}]
}

最佳答案

这对我有用(Extjs 4.2):

Ext.override(Ext.Editor, { revertInvalid: false });

关于javascript - 带有 CellEditing 的 ExtJs 4 GridPanel : data entered is lost on failed validation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11833909/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com