2012-09-27 10 views
5

Satır içi filtreli bir slickgrid'im var (DataView kullanarak). Her bir veri satırına benzersiz bir kimlik atadım ve bu kimliği (satır numarası değil) UI'de başka bir yeri güncelleyen bir işleve iletiyorum.Filtreden sonra SlickGrid Satır Kimliği değişir

Filtrelemediysem iyi çalışıyor. Ancak, kimliği geçirmeden önce sütunu filtrelerseniz, kimliği # satırını yansıtacak şekilde değiştirir. Bir dize kimliğini bir satır numarasına bile değiştirir.

Bu çok garip görünüyor. Herhangi bir fikir neler oluyor ???

grid_msc.onClick.subscribe(function(e, args) { 
    var cell = grid_msc.getCellFromEvent(e); 
    var row = cell.row;    // get row # 
    var row_ID = data_msc[row].id; // get the row ID, not row # 
    var msc = data_msc[args.row][grid_msc.getColumns()[args.cell].field]; 

    alert("Row#:"+row+", RowID:"+row_ID+", Value:"+msc); 
    mscToUI(msc, row_ID); 
}); 


// Add the selected item to the UI 
    function mscToUI(addC, cellNum) { 
     alert(addC+", "+cellNum); 
     $('#selectedMsc').append('<a href="javascript:removemsc('+cellNum+')" id="'+cellNum+'" class="rSel"><img src="images/remove.png" align="texttop" border="0" style="padding-right:4px;">'+addC+'<br /></a>'); 
    } 
}) 
+0

Gerçekten ... hiç kimse bu konuda bir şey bilmiyor ?? Böyle yapmak için böyle yaygın bir şey gibi görünüyor, bu yüzden çok yanlış! – user1415445

cevap

14

Zaten o zaman oldukça özgün veri kaynağı (data_msc) daha o (dataView_msc) den satır/veri elde edilmelidir DataViewDataGrid kullanıyorsanız.

grid_msc.onClick.subscribe(function(e, args) { 
    var cell = grid_msc.getCellFromEvent(e); // get the cell 
    var row = cell.row; // get the row's index (this value will change on filter/sort) 
    var item = dataView_msc.getItem(row); // get the row's item (see: object, data) 
    var msc = item[grid_msc.getColumns()[cell.cell].field]; // get the value of the cell 

    alert("Row Index:"+row+", RowID:"+item.id+", Cell Value:"+msc); 
    console.log(item); 
    mscToUI(msc, item.id); 
}); 

Ben tıkladığınız hücrenin değeri ve satırın id özelliğin değeri ile mscToUI() içeride yapmayı planlıyorsanız oldukça emin değilim. öğenin id ile göreli satır dizini bulmak -

  • getIdxById(id): Ben sadece işlevine satırın tüm veri nesnesi (item) geçmek ve DataView arama yöntemleri kullanarak başka bir işlem ürününün için akıllı olabileceğini düşünüyorum grid`
  • getItem(i) - filtrelenmiş ızgaranın satır indeksi ile veri döndürecek/madde için satır
  • getItemById(id) dedi - öğenin kimliği ile söz konusu öğe için veri/öğeyi iade
  • getItemByIdx(i) - filtresiz ızgara satır indeksi ile veri/öğeyi iade söz konusu satır
+0

Bu cevabın kabul edilmesi gerektiğini düşünüyorum! Btw teşekkürler cevap çok yardımcı oldu! – makim

İlgili konular