2012-12-23 12 views
5

पर केंडो यूआई ग्रिड सेव करें जब आप एंटर दबाते हैं या सेल (ब्लर) से बाहर निकलते हैं तो परिवर्तनों को सहेजने के लिए मेरी ग्रिड प्राप्त करने का प्रयास कर रहा है, और ग्रिड टूलबार में सेव बटन का उपयोग नहीं करना है।सेल ब्लर

मुझे इसे ठीक से काम करने में परेशानी हो रही है, मेरा PHP/SQL ठीक काम करता है, इसलिए मुझे यकीन है कि यह ग्रिड के साथ कुछ गलत है।

यहाँ मेरी कोड है:

$("#grid").kendoGrid({ 
dataSource: { 
    transport: { 
     read: WEBROOT+"admin/fetch-toppers", 
     update: { 
      url: WEBROOT+"admin/update-topper", 
      type: "POST" 
     } 
    }, 
    error: function(e) 
    { 
     alert(e.responseText); 
    }, 
    schema: { 
     data: "data", 
     model: { 
      id: 'id', 
      fields: { 
       "id": {nullable: true}, 
       "Date": {editable: false}, 
       "name": {editable: false}, 
       "price": {editable: true} 
      } 
     } 
    } 
}, 
columns: [{field: "Date", width: 105}, {field: "name", title: "Topper"}, {field: "price", title: "Price", width: 125}], 
height: 550, 
filterable: true, 
sortable: true, 
pageable: true, 
editable: true, 
navigatable: true, 
edit: function() 
{ 
    //this.saveChanges() 
} 
}); 

मैं बहुत सी बातें और अलग घटनाओं की कोशिश की है, लेकिन यह कोई प्रभाव नहीं है।

धुंध पर सेल मूल्यों को सहेजने के लिए मैं इसे कैसे प्राप्त कर सकता हूं?

उत्तर

7

अपने डेटा स्रोत में जोड़ें:

dataSource: { 
transport: { 
    read: WEBROOT+"admin/fetch-toppers", 
    update: { 
     url: WEBROOT+"admin/update-topper", 
     type: "POST" 
    } 
}, 
error: function(e) 
{ 
    alert(e.responseText); 
}, 
change: function (e) { 
         if (e.action == "itemchange") { 
          this.sync(); 
         } 
}, 
schema: { 
    data: "data", 
    model: { 
     id: 'id', 
     fields: { 
      "id": {nullable: true}, 
      "Date": {editable: false}, 
      "name": {editable: false}, 
      "price": {editable: true} 
     } 
    } 
} 

},

+0

धन्यवाद आप !!!!! – imperium2335

+0

उत्कृष्ट! धन्यवाद! केंडो फोरम में कई धागे हैं जिन्हें इसे देखने की ज़रूरत है! – zerodahero

1

आप कोशिश करते हैं और डेटा स्रोत के sync विधि निष्पादित करने के लिए डेटा स्रोत का change घटना इस्तेमाल कर सकते हैं।

$("#grid").kendoGrid({ 
dataSource: { 
    transport: { 
     read: WEBROOT+"admin/fetch-toppers", 
     update: { 
      url: WEBROOT+"admin/update-topper", 
      type: "POST" 
     } 
    }, 
    change:function(){this.sync()}, 
    error: function(e) 
    { 
     alert(e.responseText); 
    }, 
    schema: { 
     data: "data", 
     model: { 
      id: 'id', 
      fields: { 
       "id": {nullable: true}, 
       "Date": {editable: false}, 
       "name": {editable: false}, 
       "price": {editable: true} 
      } 
     } 
    } 
}, 
columns: [{field: "Date", width: 105}, {field: "name", title: "Topper"}, {field: "price", title: "Price", width: 125}], 
height: 550, 
filterable: true, 
sortable: true, 
pageable: true, 
editable: true, 
navigatable: true, 
edit: function() 
{ 
    //this.saveChanges() 
} 
}); 
+0

मैं अपने पास के संदर्भ में कैसे डालूं? – imperium2335

+0

क्या आप कृपया स्पष्टीकरण दे सकते हैं? –

+0

आपके द्वारा सुझाए गए कार्यों को लागू करने के लिए मैं अपना कोड कैसे बदलूं? मैंने सब कुछ करने की कोशिश की है और यह अभी भी काम नहीं करता है, लेकिन यह एक सेव चेंज बटन के साथ ठीक काम करता है, लेकिन यह वही नहीं है जो मैं चाहता हूं। – imperium2335

0

तुम भी सही ग्रिड से अपने डेटा स्रोत सिंक कॉल कर सकते हैं इस प्रकार है:

change: function (e) { 
         if (e.action == "itemchange") { 
          this.sync(); 
         } 
        }, 

यह की तरह दिखना चाहिए (सुनिश्चित करें कि आप इस post में टेलीरिक के अनुसार सेटटाइमआउट का उपयोग करें) ...

save: function() { 
    setTimeout(function() { 
      yourDatasource.sync(); 
    } 
} 
संबंधित मुद्दे