Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Extjs 检查商店中是否存在类似记录,以避免重复_Extjs_Store - Fatal编程技术网

Extjs 检查商店中是否存在类似记录,以避免重复

Extjs 检查商店中是否存在类似记录,以避免重复,extjs,store,Extjs,Store,我有一个JsonStore,其中包含以下字段: id date time type 我有一个表单,它收集三个字段(日期,时间,类型),并将新记录插入存储(我单独保存存储)。我想检查存储中是否已经存在具有相同字段值组合的记录,以避免重复条目 我已设法在另一家商店中检查重复的ID,如下所示: find = DepartmentMemberStore.find('member_id', value_from_form); if (find != -1) { // popup error wi

我有一个JsonStore,其中包含以下字段:

id
date
time
type
我有一个表单,它收集三个字段(
日期
时间
类型
),并将新记录插入存储(我单独保存存储)。我想检查存储中是否已经存在具有相同字段值组合的记录,以避免重复条目

我已设法在另一家商店中检查重复的ID,如下所示:

find = DepartmentMemberStore.find('member_id', value_from_form);
if (find != -1) {
    // popup error window
    return;
} else {
    // add new record to store
}

我不知道如何检查存储以查看多个字段值是否匹配。

对于这种情况,我使用了存储的
findBy(函数fn、[Object scope]、[Number startIndex])
。为存储中的每个记录调用函数
fn
,并将当前记录及其对应的id传递到函数中。因此,您可以使用当前记录的字段与每个表单字段进行比较

以下是一个针对您的情况的示例:

var recordIndex = DepartmentMemberStore.findBy(
    function(record, id){
        if(record.get('date') === date_from_form && 
           record.get('time') === time_from_form &&
           record.get('type') === type_from_form){
              return true;  // a record with this data exists
        }
        return false;  // there is no record in the store with this data
    }
);

if(recordIndex != -1){
    alert("We have a duplicate, abort!");
}

正是我需要的。非常感谢。