2013-04-12 16 views
5

में मानों को गतिशील रूप से बदलने के लिए मैं केंडो यूई ग्रिड का उपयोग कर रहा हूं। उसमें मैंने मूल्यों को सहेजने के लिए बैच मोड का उपयोग किया है। यदि मैं एक पंक्ति में रिकॉर्ड बदलता हूं तो संबंधित पंक्ति के साथ मान भी बदला जाएगा और जब हम सहेजने पर क्लिक करेंगे तो दोनों फ़ील्ड डेटाबेस में सहेजे जाएंगे।केंडो ui ग्रिड

उदाहरण के लिए। मैं की तरह एक ग्रिड हो रहा है:

Integer Value 
    1   First 
    2   Second 
    3   Third 
    4   Fourth 

तो मैं 1 से 4 के मूल्य में फिर 4 बदल जाएगा और मैं मान भी गतिशील रूप बदल बदल जाते हैं। मेरा मतलब है कि मैं यहां 1 और 4 का आदान-प्रदान करना चाहता हूं। और मैं को सभी फ़ील्ड को भी बदल सकता हूं लेकिन अंत में सभी रिकॉर्ड डेटाबेस में सहेजे जाने चाहिए। मैं की तरह

इस कोड की कोशिश की है ग्रिड परिवर्तन समारोह

var grid = $('#grid').data("kendoGrid"); 
var selectedRow = grid.select(); 
var selectedRowIndex = selectedRow.index(); 
console.log(selectedRowIndex); 

var firstItem = dataSource.data()[selectedRowIndex]; 

var datalength = dataSource.data(); 
for (var i = 0; i < datalength.length; i++) 
    { 
    var dataItem = datalength[i].id; 
    if (dataItem == firstItem.get('id')) 
     {         
     var secondItem = dataSource.data()[i];         
     secondItem.set('id', dataItem);        
     } 
    } 

तो मान बदल रहे हैं में हो जाएगा, लेकिन मूल्यों नियंत्रक से गुजर नहीं कर रहे हैं के बाद यह बदल रही है।

उत्तर

7

यदि आप सीधे डेटा के साथ खेलना चाहते हैं तो आपको रिकॉर्ड्स को गंदा के रूप में चिह्नित करने की आवश्यकता है।

dataSource.data()[changedIndex].dirty = true; 
dataSource.sync(); 
+0

धन्यवाद। और क्या हम जानते हैं कि केंडो यूई ग्रिड की सहेजने की घटना पर कौन सा बदलाव आया है। – Pa1

+0

क्षमा करें मैं आपके प्रश्न का पालन नहीं कर रहा हूं? – Vojtiik

+0

कोड की ये दोनों पंक्तियां मुझे एक त्रुटि देती हैं –

0

बस केंडो ग्रिड से डेटा का मूल्य निर्धारित करें।

$ ("# my_grid") डेटा ("केंडोग्रिड")। डेटासोर्स.data() [rowindex] .columnName = newValue;

मेरी प्रोजेक्ट में मैंने ड्रॉप-डाउन चेंज पर कॉलम नाम = fclty_cd के साथ अपने केंडो ग्रिड पंक्ति का मूल्य बदल दिया। ।

function onChange(e) { 
    var fromContactNumber = parseFloat($('#fromContactNumber').val()); 
    var toContactNumber = parseFloat($('#toContactNumber').val()); 
    var length = $('#grid table tr[role=row]').length; 
    var faculty = $('#ddl_Faculty').val(); 
    for (var i = 1; i < length; i++) { 
     var num = parseFloat($($('#grid table tr[role=row]')[i]).find("td")[4].innerText); 
     if (num >= fromContactNumber && num <= toContactNumber) { 
      $("#grid").data("kendoGrid").dataSource.data()[i - 1].fclty_cd = faculty; 
      $($($('#grid table tr[role=row]')[i]).find("td")[11]).text(faculty); 
     } 
    } 
} 

इस लाइन यूआई मूल्य केवल परिवर्तन::

मैं यह लिखा $ ($ ($ ('# ग्रिड तालिका tr [भूमिका = पंक्ति]') [i]) मिल (" टीडी ") [11]) पाठ (संकाय)।

यह पंक्ति केंडो डेटा ग्रिड के अंदर मान बदलती है: $ ("# my_grid")। डेटा ("kendoGrid")। डेटासोर्स.data() [rowindex] .columnName = newValue;

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