2010-11-06 8 views
8

मैं निम्नलिखित क्षेत्रों के साथ एक JsonStore है:जांच करें कि समान रिकॉर्ड की दुकान से बचने के लिए में मौजूद डुप्लिकेट

id 
date 
time 
type 

मैं एक रूप है कि तीन क्षेत्रों जमा करता है (date, time, type) और एक नया रिकार्ड सम्मिलित करता है दुकान में (मैं स्टोर को अलग से बचाता हूं)। डुप्लिकेट प्रविष्टियों से बचने के लिए स्टोर में फील्ड मानों के समान संयोजन के साथ रिकॉर्ड पहले से मौजूद है, तो मैं एक जांच करना चाहता हूं।

मैं इस तरह एक और दुकान में डुप्लीकेट पहचान पत्र के लिए जाँच करने में कामयाब रहे:

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

मैं एक दुकान की जांच कैसे की यदि एक से अधिक फ़ील्ड मान मैच को देखने के लिए पता नहीं है।

उत्तर

16

मैंने इस स्थिति के लिए स्टोर का findBy(Function fn, [Object scope], [Number startIndex]) उपयोग किया है। फ़ंक्शन fn स्टोर में प्रत्येक रिकॉर्ड के लिए कहा जाता है, और वर्तमान रिकॉर्ड और इसकी संबंधित आईडी फ़ंक्शन में पास की जाती है। इस प्रकार आप प्रत्येक फॉर्म फ़ील्ड के साथ तुलना करने के लिए वर्तमान रिकॉर्ड के फ़ील्ड का उपयोग कर सकते हैं।

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!"); 
} 
+1

मैं वास्तव में क्या जरूरत:

यहाँ अपनी स्थिति के लिए एक उदाहरण है। धन्यवाद! –

संबंधित मुद्दे