2015-02-27 2 views
0

Я использую ExtJS для создания веб-приложения, которое позволяет легко редактировать базу данных.Как отобразить ошибку в валидации для сетки ExtJS?

Я хочу ограничить количество символов для определенных полей. Поэтому я добавил 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' 
    }); 
}); 

Я надеюсь, что все это разумно, я вырезал материал, который не имеет отношения к делу. Мне все равно, насколько красивым является сообщение об ошибке, но мне нужно, чтобы сообщение отображалось в случае неудачной проверки (в этом случае слишком длинное имя).

ответ

2

Для проверки есть свойство lengthMessage. Я думаю, что это то, что вы ищете.

Лично я не использовал проверки на модели. Я использовал VTypes для полей формы и редакторов, и там всегда отображались сообщения.

+0

Я думаю, что 'lengthMessage' имеет значение по умолчанию, и оно не отображается. Тем не менее, я дал ему явное значение, и он все еще не отображается. –

+0

Я отредактировал ответ. –

+0

'VTypes' FTW! К сожалению, у них меньше встроенных валидаторов, но достаточно хороших. –

Смежные вопросы