проверка ext.grid.editorgridpanel при наличии двух повторяющихся данных строк

#javascript #extjs

#javascript #extjs

Вопрос:

У меня есть этот код ниже, и я где-то видел в Интернете, но он работает только с одним заголовком или строкой. существует.

Я хотел бы, чтобы, если существуют две строки, они будут проверены. Допустим, у меня есть заголовок имени и даты, если данные имени и даты были дублированными, это вызовет сообщение проверки дубликат данных не может быть сохранен

 var duplicated = function(store, number, value)
{
    var found = false;
    store.each(function(record)
        {
          if(found = (record.data[number]==value) ? true : false){return false};
        }
    )
    return found;
}
  

Я пытался манипулировать этим фрагментом кода, но больше не могу.


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

Комментарии:

1. Возможно, вам следует создать образец скрипки. fiddle.sencha.com

Ответ №1:

Если вам нужно проверить уникальные пары имя дата, добавьте валидаторы в свои редакторы:

 columns: [
{text: 'Name', dataIndex: 'name', getEditor: function(record) {
  return {
   xtype: 'textfield',
   validator: function (val) {
         const errMsg = 'Not unique';
         let isExist = false;
         store.each(function(rec){
            if(rec.get('name') === val amp;amp; record.get(date) === rec.get('date')){
               isExist = true;
               return false;
              }
            });
            return val amp;amp; !isExist ? true: errMsg ;
        }
    }
 }
},{text: 'Name', dataIndex: 'name', getEditor: function(record) {
  return {
   xtype: 'datefield',
   validator: function(val) {
        const errMsg = 'Not unique';
         let isExist = false;
         store.each(function(rec){
            if(rec.get('date') === val amp;amp; record.get(name) === rec.get('name')){
               isExist = true;
               return false;
              }
            });
            return val amp;amp; !isExist ? true: errMsg ;
}
}
 }
}
]
  

Вы можете переделать это более красиво, но надеюсь, что идея понятна.