2013-04-15 17 views
9

के सेटडेटा स्रोत विधि का उपयोग कैसे करें क्या कोई भी केंडो यूआई ग्रिड की सेटडेटासोर्स विधि का उपयोग करने में सक्षम है? मेरा मानना ​​है कि इसका उपयोग डेटासोर्स को असाइन करने के लिए किया जाता है जिसे ग्रिड को बाद के चरण में और ग्रिड रीफ्रेश उद्देश्यों के लिए भी आवंटित किया जा सकता है। हालांकि मुझे कोई उचित दस्तावेज नहीं मिला जो बताता है कि इस विधि का उपयोग कैसे करें और रीफ्रेशेबल ग्रिड बनाएं।केंडो यूआई ग्रिड

मैं रिमोट AJAX कॉल के माध्यम से अपने डेटास्रोत को अपडेट करने का प्रयास कर रहा हूं। मैंने यह भी माना कि ऑटोटिनक प्रॉपर्टी को सही पर सेट करके स्रोत अपडेट होने पर इसे ऑटोरेफ्रेश करना चाहिए। हर बार जब मैं कैलेंडर नियंत्रण पर क्लिक करता हूं तो मैं GetRemoteData फ़ंक्शन के दिनांक मान में पास करता हूं ताकि डेटा AJAX अनुरोध के माध्यम से अपडेट किया जा सके।

यह इस समय काम नहीं करता है। इस के लिए समाधान क्या है इसके बारे में कोई सुराग?

मेरे देखें

$('#calendarContainer').kendoCalendar({ 
     format: "dd/MM/yyyy", 
     culture: "en-GB", 
     change: onDateChange 
    }); 


function onDateChange() { 
     var selectedDate = kendo.toString(this.value(), 'dd/MM/yyyy'); 

     GetRemoteData(selectedDate); 
     /* 
     $("#grid").data("kendoGrid").dataSource.data(bob); 
     $("#grid").data("kendoGrid").dataSource.read(); 
     */ 
    } 



    $('#grid').kendoGrid({ 

      dataSource:GetRemoteData(date), 

      scrollable: { 
       virtual: true 
      }, 
      navigatable: true, 
      groupable: true, 
      sortable: true, 
      selectable: "row", 
      pageable: true, 

      pageable: { 
       input: true, 
       numeric: false 
      }, 

      resizable: true, 
      reorderable: true, 
      filterable: { 
       extra: false 
      }, 
      columns: [ 
       { 
        field: "DealNumber", 
        width: 150, 
        title: "DealNumber", 
        filterable: { 
         operators: { 
          string: { 
           startswith: "Starts With", 
           contains: "Contains" 
          } 
         } 

        }, 

       }, 
       { 
        field: "DealIssuer", 
        width: 150, 
        title: "Issuer", 
        filterable: { 
         operators: { 
          string: { 
           startswith: "Starts With", 
           contains: "Contains" 
          } 
         } 
        } 

       }, 
        { 
         field: "Ticker", 
         width: 150, 
         title: "Ticker", 
         filterable: { 
          operators: { 
           string: { 
            startswith: "Starts With", 
            contains: "Contains" 
           } 
          } 
         } 

        }, 
        { 
         field: "DealType", 
         width: 150, 
         title: "Type", 
         filterable: { 
          operators: { 
           string: { 
            startswith: "Starts With", 
            contains: "Contains" 
           } 
          } 
         } 

        }, 
         { 
          field: "DealValue", 
          width: 150, 
          title: "Value", 
          filterable: { 
           operators: { 
            string: { 
             startswith: "Starts With", 
             contains: "Contains" 
            } 
           } 
          } 

         }, 
          { 
           field: "DealStatus", 
           width: 150, 
           title: "Status", 
           filterable: { 
            operators: { 
             string: { 
              startswith: "Starts With", 
              contains: "Contains" 
             } 
            } 
           } 

          }, 
       { 
        field: "DealPricingCompletionDate", 
        width: 230, 
        title: "DealPricingCompletionDate", 
        format: "{0:dd/MM/yyyy}", 
        // template: '#= kendo.toString(StartDate, "dd/MM/yyyy") #', 
        filterable: { 
         ui: "datetimepicker", 
         operators: { 
          date: { 
           gt: "After", 
           lt: "Before", 
           eq: "Equals" 
          }, 
          messages: { 
           filter: "Apply", 
           clear: "Clear" 
          } 
         } 

        } 
       }, 

       { 
        command: { text: "View Details", click: showDetails }, title: " ", width: "140px" 
       }, 

      ], 
      editable: "popup", 
      height: 600 
     }).data("kendoGrid"); 






function GetRemoteData(date) { 

     var chosenDate; 


     if (typeof date == "undefined") { 
      chosenDate = "12-12-2013"; 
     } 
     else { 
      chosenDate = date; 
     } 

     var source = new kendo.data.DataSource({ 
      autoSync: true, 
      transport: { 
       read: { 
        type: "GET", 
        url: "http://localhost:35798/RestServiceImpl.svc/GetDealData", 
        dataType: "jsonp", 
        contentType: "application/json; charset=utf-8", 
        cache: false, 
       }, 

       parameterMap: function (data, type) { 

        var data = { 
         startDate: chosenDate 
        } 
        return data; 
       } 
      }, 
      schema: { 
       model: { 
        fields: { 
         DealNumber: { type: "string" }, 
         DealIssuer: { type: "string" }, 
         Ticker: { type: "string" }, 
         DealType: { type: "string" }, 
         DealValue: { type: "number" }, 
         DealStatus: { type: "string" }, 
         DealPricingCompletionDate: { type: "date" } 

        } 
       } 
      }, 
      pageSize: 16 
     }); 

     source.fetch(function() { 
      var data = this.data(); 
     }); 
     return source; 
    } 

उत्तर

15

क्या आप अब तक की कोशिश की? यह बहुत बुनियादी है।

उदाहरण:

var ddl = $('#testDropDown').data("kendoDropDownList"); 
var otherDropDownList= $('#otherDropDown').data("kendoDropDownList"); 

var ds = new kendo.data.DataSource(); 
ds.data(otherDropDownList.dataSource.data()); // set new DataSource to otherDropDown's data source then filter it 
ds.filter(
    { 
     field: "Id", 
     operator: "eq", 
     value: parseInt(id) 
    } 
) 

ddl.setDataSource(ds); 

जाहिर है इस सब के लिए जो भी परिदृश्य आप अलग होने जा रहा है। ग्रिड

var ds = new kendo.data.DataSource(); 
var grid = $('#grid').data("kendoGrid"); 

grid.setDataSource(ds); // sets to a blank dataSource 

या, के लिए

अद्यतन एक और ग्रिड के साथ इस डेटा स्रोत का उपयोग करें?

var gridDataSource = $('#grid').data("kendoGrid").dataSource; 
var secondGrid = $('#secondGrid').data("kendoGrid"); 

secondGrid.setDataSource(gridDataSource); 
+0

HI थीडिक्सन। कोड के लिए धन्यवाद लेकिन मैं ग्रिड के साथ ऐसा करने की कोशिश कर रहा हूं। मैंने सभी प्रकार के विकल्प की कोशिश की है लेकिन कोई भी काम नहीं करता जब तक कि मैं setDataSource नामक इस विधि में नहीं आया। क्या आप ग्रिड के लिए इस तरह का उदाहरण दिखा सकते हैं। यदि आप देखना चाहते हैं कि यह कहां फिट हो सकता है तो मैं अपना कोड पोस्ट कर सकता हूं। – Sike12

+0

हाँ, अगर आप अपना वर्तमान कोड पोस्ट कर सकते हैं और आप क्या करने की कोशिश कर रहे हैं, तो यह बहुत अच्छा होगा। –

+0

कोड अब शामिल किया गया है – Sike12

5

आप setDataSource दूसरी तरह के वस्तु अपने ajax अनुरोध द्वारा लौटाए से एक डेटा स्रोत पैदा कर रही है स्थापित करने के लिए के रूप में निम्नलिखित LINK में से Brett

var dataSource = new kendo.data.DataSource({ 
    data: "your object returned by ajax" 
}); 

$('#GridKatildigiKurslar').data('kendoGrid').setDataSource(dataSource); 

बंद समझाने है चाहते हैं पाठ्यक्रम ग्रिड होना चाहिए लौटा ऑब्जेक्ट दिखाने के लिए कॉन्फ़िगर किया गया।

+0

धन्यवाद @ स्वतंत्रताकार – Sike12

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