ext.grid.editorgridpanel验证是否存在两个重复的行数据

问题描述

我下面有这段代码,我在互联网上的某个地方看到过,但是它仅在存在一个标题或行的情况下起作用。

我希望如果存在两行,它将进行验证。让我们说我有名称和日期的标头,如果名称和日期数据重复,则会引发验证消息,重复数据无法保存

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;
}

我试图操纵这段代码,但是我不能再做了。


我仍然无法弄清楚。如果行上的两个数据已经存在并且将被保存,则将对其进行验证,因为它具有两个重复的行(两个重复的数据也如上所述)。

解决方法

如果您需要检查唯一的夫妇姓名和日期,请向编辑器添加验证器:

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 && record.get(date) === rec.get('date')){
               isExist = true;
               return false;
              }
            });
            return val && !isExist ? true: errMsg ;
        }
    }
 }
},{text: '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 && record.get(name) === rec.get('name')){
               isExist = true;
               return false;
              }
            });
            return val && !isExist ? true: errMsg ;
}
}
 }
}
]

您可以更漂亮地重做此操作,但希望这个主意很清楚。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...