extjs 如果存在两个重复的行数据,则验证外部网格编辑器网格面板

50pmv0ei  于 2022-11-05  发布在  其他
关注(0)|答案(1)|浏览(169)

我有这个代码下面,我在互联网上看到的地方,但它是工作只有一个标题或行存在.
我希望如果有两行存在,它将进行验证。假设我有名称和日期的标题,如果名称和日期数据重复,它将引发验证消息,数据重复无法保存

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

我试过操纵那段代码,但我再也做不到了。
我还是搞不清楚。如果行上的两个数据已经存在,如果将保存它将验证,因为它有两个重复的行(两个重复的数据,以及如上所述)。

nsc4cvqm

nsc4cvqm1#

如果需要检查唯一的名称+日期对,请在编辑器中添加验证器:

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

你可以重做这个更漂亮,但希望这个想法是明确的。

相关问题