2013-04-17 11 views
7

में 'विकल्प' पैरामीटर अब मैं केंडोई के साथ एक वेब ऐप विकसित करना सीख रहा हूं, जब मैं कंडोमाइज्ड पॉपअप केंडो विन्डो के साथ ग्रिड डेटा को उतारने की कोशिश करता हूं तो केंडो अंतर्निहित संपादन विंडो के बजाय, मुझे नहीं पता था कैसे दूरदराज के अनुरोध भेजने के लिए काम करते हैं, तो मैं this page में सरकारी एपीआई डॉक्स में जवाब खोजने के लिए प्रयास करते हैं, लेकिन एक नई समस्या का पालन कोड के रूप में हुई, शो है:केंडो डेटासोर्स

<script> 
    var dataSource = new kendo.data.DataSource({ 
     transport: { 
      read : function (options) { 
       /* implementation omitted for brevity */ 
      }, 
      update: function (options) { 
       // make JSONP request to http://demos.kendoui.com/service/products/update 

       $.ajax({ 
        url  : "http://demos.kendoui.com/service/products/update", 
        dataType: "jsonp", // "jsonp" is required for cross-domain requests; use "json" for same-domain requests 
        // send the updated data items as the "models" service parameter encoded in JSON 
        data : { 
         models: kendo.stringify(options.data.models) 
        }, 
        success : function (result) { 
         // notify the data source that the request succeeded 

         options.success(result); 
        }, 
        error : function (result) { 
         // notify the data source that the request failed 
         options.error(result); 
        } 
       }); 
      } 
     }, 
     batch : true, 
     schema : { 
      model: { id: "ProductID" } 
     } 
    }); 

    dataSource.fetch(function() { 
     var product = dataSource.at(0); 
     product.set("UnitPrice", 20); 
     dataSource.sync(); makes request to http://demos.kendoui.com/service/products/update 
    }); 
</script> 

यह उदाहरण देकर स्पष्ट करने के लिए एक उदाहरण है दूरस्थ सेवा

पर HTTP अनुरोध करने के लिए फ़ंक्शन के रूप में अद्यतन निर्दिष्ट करने के लिए कैसे करें मेरी समस्या यह है कि पैरामीटर 'विकल्प' क्या है समारोह को पढ़ने और अद्यतन करने के लिए पारित किया गया। मुझे मिला एकमात्र सुराग trans.parametermap फ़ंक्शन के पैरामीटर है, लेकिन मुझे यकीन नहीं है कि उनके बीच कुछ रिश्ते हैं, इसलिए उम्मीद है कि कोई मुझे मेरे लिए कुछ समझाएगा

उत्तर

5

विकल्प पैरामीटर जो आपने पहले ही खोजा है। KendoUI चलो आप इसके डेटासॉर क्लास के डेटा-एक्सेस विधियों के लिए कुछ कॉन्फ़िगरेशन के बजाय फ़ंक्शन निर्दिष्ट करते हैं।

यदि आप कोई फ़ंक्शन निर्दिष्ट करते हैं, तो डेटा को लोड करने के साथ आप कब समाप्त हो सकते हैं? यह नहीं कर सका तो इस विकल्प-वेरिएबल हैं जो आपके फ़ंक्शन को पास कर दिए गए हैं (और वास्तव में, इसमें प्रत्येक नाम हो सकता है, उदाहरण के लिए dfhajkfhd) जिसे आप kendoUI को अपनी प्रगति के बारे में जानने के लिए कॉल कर सकते हैं। इसके लिए इसमें सफलता और त्रुटि विधियां जिन्हें आप कॉल कर सकते हैं।

आपकी टिप्पणियां, जिन्हें आपने केंडो-डॉक्स से कॉपी किया है, बिल्कुल यह कहें।

या आप कुछ अलग सवाल थे?

+0

जवाब के लिए रियल धन्यवाद किया जाता है। हां, मुझे लिंक किए गए दस्तावेज़ों का उत्तर मिल गया है। – Beicai

1

सच हैं जो इस सवाल का जवाब और

को मैं केन्डो-डॉक्स कि मैं प्रश्न में जुड़े हुए के नीचे से जवाब मिल गया है की कोशिश की है की सराहना करते हैं।

  1. एक नए 'डेटा स्रोत' ऑब्जेक्ट बनाया है और उस में पढ़ा और अद्यतन परिवहन परिभाषित
  2. जब डेटा स्रोत तैयार, डेटा स्रोत की 'प्राप्त' विधि का उपयोग डेटा आइटम मैं द्वारा अपडेट करें की जरूरत है पाने के लिए आईडी।
  3. udpate डेटा 'set' विधि का उपयोग करें और 'सिंक' विधि

अंतिम चरण के लिए डेटाबेस पालन डेटा सिंक है द्वारा प्रस्तुत कोड मैं

var updateDataSource = new kendo.data.DataSource({ 
    type: "odata", 
    transport: { 
     read: { 
      url: "/api/odata/PEMEP/TaskInformations/?" 
     }, 
     update: { 
      url: "/api/odata/PEMEP/TaskInformations/?", 
      type: "PUT", 
      dataType: "json", 
     }, 
    }, 
    schema: { 
     model: { 
      id: "_id" 
     } 
    }, 
    sync: function() { // close edit window when update request finished 

     $("#window").data("kendoWindow").close(); 
    }, 
    error: function(e) { 
     console.log(e.status); 
    } 
}); 
updateDataSource.fetch(function() { 

    var task = updateDataSource.get(id); // get dataitem by id 

    task.set("status", status); // set new values 
    task.set("retreatReason", retreatReason); 

    updateDataSource.sync(); //submit the change 
}); 
संबंधित मुद्दे