मनाया के रूप में, Slickgrid के डिफ़ॉल्ट सत्यापन जो किसी भी उपलब्ध validator
एक पैरामीटर के रूप केवल मूल्य के साथ पारित करने के लिए जाँच करता है एक editor की validate
समारोह तक सीमित है। अतिरिक्त प्रासंगिक जानकारी प्रदान करने के लिए, एक कस्टम संपादक की आवश्यकता होती है, या अधिक विशेष रूप से कस्टम सत्यापन फ़ंक्शन। या तो एक नया मूल्य संपादक से आने वाले या किसी अन्य आवश्यक सत्यापन पहलुओं के साथ-साथ मौजूदा मूल्य
this.validate = function() {
if (args.column.validator) {
args.newValue = $input.val()
var validationResults = args.column.validator(args);
if (!validationResults.valid) {
return validationResults;
}
}
return { valid: true, msg: null };
};
प्रत्येक स्तंभ फिर एक सत्यापनकर्ता डिफ़ॉल्ट मान के भीतर जो के विरुद्ध जांच की जाएगी की आवश्यकता होगी।
var Validator = function(args) {
//validate the existing value or the incoming editor value
var value = args.newValue ? args.newValue : args.item[args.column.field]
var result = value > 0
return {valid: result}
}
संपूर्ण ग्रिड को सत्यापित करने के लिए एक सत्यापन विधि प्रदान करती है जो प्रत्येक पंक्ति पर एक सत्यापनकर्ता के लिए प्रत्येक कॉलम को देखती है। मान्यता परिणामों के आधार पर rowIndex -> collection of failures
की एक संबंधपरक मानचित्रण बनाया गया है देशी onValidationError
घटना को पास करने की। यह त्रुटियों की उपस्थिति की उपयोगकर्ता अधिसूचना को संभालने के लिए सदस्यता के लिए अनुमति देता है। इसके अलावा, मान्यता परिणाम providing specific metadata to the grid
var validateColumns = function(args){
var failures=[];
for (c in columns) {
var column = columns[c]
if (column.validator) {
if(!column.validator({row: args.row, item: args.item, column: column}).valid){
failures.push({columnIndex: c, column: column, rowIndex: args.row, item: args.item})
}
}
}
return failures;
}
grid.validate = function() {
var rowFailures = {}
for (r in data) {
//ignore our metadata provider (if applicable)
if(r == 'getItemMetadata'){continue;}
var failures = validateColumns({item: data[r], row: r})
if(failures.length > 0){
rowFailures[r] = failures;
}
}
if(Object.keys(rowFailures).length > 0){
grid.onValidationError.notify({"rowFailures": rowFailures}, new Slick.EventData())
}
}
आप किसी भी अन्य चौखटे है कि आप करने के लिए "काम" के इस भाग को सौंपने सकता है का उपयोग कर रहे द्वारा शैली विफलताओं के लिए इस्तेमाल किया जा सकता है? आप महसूस किया होगा, Slickgrid के डिफ़ॉल्ट मान्यता केवल एक 'editor' जो एक पैरामीटर के रूप केवल मूल्य पारित हो जाता है की' validate' समारोह तक सीमित है। वांछित व्यवहार प्राप्त करने के लिए आप स्रोत को संशोधित कर सकते हैं, लेकिन व्यक्तिगत रूप से मैं इस प्रकार के सत्यापन को किसी अन्य ढांचे (यानी [नॉकआउट सत्यापन] (https://github.com/Knockout-Contrib/Knockout-Validation) पर प्रतिनिधि दूंगा) ... हालांकि मैं इस संयोजन के आंशिक हूं क्योंकि मुझे इसका अनुभव है। – Origineil
नहीं, मैं SlickGrid सत्यापन में बनाया के साथ रहना पसंद करेंगे। – jlarson
मैं (http://jsfiddle.net/origineil/nLpzjL32/) पूर्ण ग्रिड सत्यापन के [एक डेमो शुरू कर दिया] है। 'मान्य' बटन प्रत्येक डेटा प्रविष्टि के विरुद्ध परिभाषित 'सत्यापनकर्ता' नामक किसी कॉलम को चलाएगा। * डिफ़ॉल्ट सत्यापन त्रुटि व्यवहार * एक संपादक इनपुट फ़ील्ड को बंद करने की अनुमति नहीं देना है, इसलिए मैंने सेल फ्लैशिंग को यह स्पष्ट करने के लिए जोड़ा है कि आपको वांछित विफलता को संभालने के लिए कहां आवश्यकता होगी। दूसरा, मुझे नहीं पता कि * डिफ़ॉल्ट * मान क्या होगा, इसलिए मैंने केवल एक संख्या के साथ उपयोग की आवश्यकता है कि वे '> 0' हों। – Origineil