2012-09-24 10 views
12

पढ़ता है मैं केंडो यूआई ऑटोकंपलेट घटक के साथ पागल हो रहा हूं। मैं jQuery के साथ डेटा तक पहुंचने के लिए अपने स्वयं के फ़ंक्शंस का उपयोग कर रहा हूं, इसलिए मुझे स्वत: पूर्ण डेटा Source.transport.read को फ़ंक्शन के रूप में सेट करना होगा। कोड इस तरह कुछ है।केंडो यूआई ऑटोकंपलेट डेटासॉर ट्रांसपोर्ट केवल एक बार

minLengthAtocomplete = 3; 

$('#autocomplete').kendoAutoComplete({ 
    minLength : 3, 
    filter : "contains", 
    dataValueField : "key", 
    dataTextField : "value", 
    dataSource : new kendo.data.DataSource({ 
     transport : { 
      read : _OnTransportRead 
     }, 
     schema : { 
      /* object schema */ 
     } 
    }) 
}); 

function _OnTransportRead(e) { 
    var text = $.trim(e.data.filter.filters[0].value); 

    if (text && text.length >= minLengthAtocomplete) { 
     _GetUsers(
      text, 
      function onSuccess(data) { 
       var users = []; 
       /* sets users with info in data */ 
       e.success(users); 
      }, 
      function onError(error) { 
       /* stuff with error */ 
      } 
     ); 
    } 
} 

function _GetUsers(userName, onSuccess, onError) { 
    /* Ajax to get users from DB */ 
} 

इस कोड को पूरी तरह से चलाता है, लेकिन dataSource.transport.read केवल एक बार कहा जाता है। मैं पाठ 'michae' के साथ पहली खोज करता हूं और स्वत: पूर्ण घटक इसके डेटासोर्स.transport.read को अपेक्षित के रूप में चलाता है। फिर, मैं 'माइकल' खोजने के लिए एक और अक्षर जोड़ता हूं, और dataSource.transport.read को फिर कभी नहीं कहा जाता है। बहुत निराशाजनक है!

मैंने ऑटोसिंक डेटा स्रोत प्रॉपर्टी, मैन्युअल डेटा स्रोत सिंक का उपयोग करने का प्रयास किया, स्वत: पूर्ण डेटा पर नया डेटा स्रोत ऑब्जेक्ट सेट किया, लेकिन कोई भाग्य नहीं।

मैं क्या गलत कर रहा हूं? मैं क्या भूल रहा हूँ?

अग्रिम धन्यवाद।

उत्तर

24

डेटा स्रोत के लिए हर बार अनुरोध करने के लिए आपको serverFiltering सक्षम करना चाहिए।

$('#autocomplete').kendoAutoComplete({ 
    minLength : 3, 
    filter : "contains", 
    dataValueField : "key", 
    dataTextField : "value", 
    dataSource : new kendo.data.DataSource({, 
     serverFiltering: true, 
        transport : { 
            read : _OnTransportRead 
        }, 
        schema : { 
            /* object schema */ 
        } 
    }) 
}); 
+1

यह आश्चर्यजनक है! ऑटोकंपलेट अब एक आकर्षण की तरह काम करता है! मैंने इससे निपटने में काफी समय बिताया, मैं पागल हो रहा था! बहुत धन्यवाद! – vermicida

+0

यहां वही समस्या है और समाधान सबसे उपयोगी था! – HapiDjus

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