2013-04-12 20 views
5

Kendo ui ızgarasını kullanıyorum. Bunun için değerleri kaydetmek için parti modunu kullandım. Bir satırdaki kaydı değiştirirsem, ilgili satırdaki değer de değişecek ve kaydetmeyi tıkladığımızda her iki alan da veritabanına kaydedilecektir. Örneğin,Kendo ui ızgarasındaki değerler dinamik olarak nasıl değiştirilir?

. i, 1 ila 4 arasında bir değer daha sonra 4 değiştirilebilir ve değerleri de dinamik olarak değiştirilebilir değişiklik ise

Integer Value 
    1   First 
    2   Second 
    3   Third 
    4   Fourth 

: I gibi bir ızgara olan am. Demek istediğim, burada 1 ve 4'ü değiştirmek istiyorum. Ve ayrıca tüm alanları da değiştirebilirim ama sonunda tüm kayıtlar veritabanına kaydedilmelidir. Ben

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);        
     } 
    } 

Sonra değerleri değişiyor ızgara değişim işlevinde olacak

Bu kod gibi denedim ama değişen edildikten sonra değerleri kontrolöre iletmediğinizi.

cevap

7

Veriler ile doğrudan oynamak istiyorsanız, değiştirdiğiniz kayıtları kirli olarak işaretlemeniz gerekir.

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

Teşekkür ederiz. Ve kendo ui ızgarasının kayıt olayında hangisinin değiştiğini bilebiliriz. – Pa1

+0

Üzgünüz, sorunuz mu var? – Vojtiik

+0

Bu kod satırlarının her ikisi de bana bunu duyduğuma üzüldüğü için –

0

Verilerin değerini Kendo kılavuzundan ayarlayın.

$ ("# my_grid") veri ("kendoGrid"). DataSource.data() [rowindex] .columnName = newValue;

Projemde, Kendo ızgara sırasının değerini, bir açılır menüden sütun adı = fclty_cd olarak değiştirdim. "( $ ($ ($ ('# ızgara tablo tr [rolü = satır]') [i]) bulabilirsiniz.

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); 
     } 
    } 
} 

Bu hat sadece UI değerini değiştirir:

Bunu yazdım td ") [11]), metin (öğretim.);

Bu satır, Kendo veri kılavuzunun içindeki değeri değiştirir: $ ("# my_grid") veri ("kendoGrid"). DataSource.data() [rowindex] .columnName = newValue;

İlgili konular