如何在ExtJS网格验证中显示错误?

时间:2015-02-27 20:11:35

标签: validation extjs

我正在使用ExtJS构建一个允许轻松编辑数据库的Web应用程序。

我想限制某些字段的字符数。所以我添加了validation,如下所示。它似乎工作,如果它不符合要求,没有数据持续存在。但没有消息告诉用户出了什么问题。

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

    var toolbar = Ext.create('Ext.toolbar.Toolbar', {
      // [snip]
    });

    // Set up a model to use in our Store
    var mysource = Ext.define('Source', {
        extend : 'Ext.data.Model',
        fields : [ {
            name : 'id',
            type : 'int'
        }, {
            name : 'firstname',
            type : 'string'
        } ],
        validations: [{type: 'length', field: 'firstname', max: 10}]
    });


    var myStore = Ext.create('Ext.data.JsonStore', {
        model : 'Source',
        idProperty : 'id',
        proxy : {
            type : 'ajax',
            api : {
              // [snip]
            },
            reader : {
                type : 'json',
                root : 'data',
                successProperty: 'status'
            }
        },

        autoLoad : true
    });

    myStore.load();
    Ext.tip.QuickTipManager.init();

    // create the Grid
    var grid = Ext.create('Ext.grid.Panel', {
        plugins : [ Ext.create('Ext.grid.plugin.CellEditing', {
            clicksToEdit : 1
        }) ],
        dockedItems : toolbar,
        store : myStore,
        stateful : true,
        stateId : 'stateGrid',
        columns : [ {
            text : 'ID',
            flex : 1,
            sortable : true,
            dataIndex : 'id'
        }, {
            text : 'Name',
            flex : 1,
            sortable : true,
            dataIndex : 'firstname',
            editor : {
                xtype : 'textfield'
            }
        } ],
        height : 350,
        width : 600,
        title : 'View / Edit Names',
        renderTo : 'nameGrid'
    });
});

我希望所有这些都是明智的,我已经删除了不相关的东西。我不在乎错误消息有多漂亮,但是在验证失败的情况下我需要显示一条消息(在这种情况下名称太长)。

1 个答案:

答案 0 :(得分:2)

有一个属性lengthMessage用于验证。我认为这就是你要找的东西。

就个人而言,我没有在模型上使用验证。 我在表单字段和编辑器上使用了VTypes,并且始终显示消息。