2011-10-30 17 views
6

'da seçili satırların verilerini al. Bazı satırların bir filtre tarafından gizlendiği bir slickgrid var (DataView).slickgrid

Şimdi gridin getSelectedRows yöntemini çağırdığımda, görünür şekilde seçili satırların dizinlerini alıyorum. Ama seçilen satırların gerçek verilerine ihtiyacım var.

cevap

19

Böyle bir şey yapmanız gerekir:

var selectedData = [], 
    selectedIndexes; 

selectedIndexes = _grid.getSelectedRows(); 
jQuery.each(selectedIndexes, function (index, value) { 
    selectedData.push(_grid.getData()[value]); 
}); 

Şu anda selectedData değişken seçilen satırlar için verileri içerir.

bu çatal bağlı tutarsız olarak görülen Ayrıca, yerine ızgara nesneden getData() kullanarak DataView'e veri çekme .each döngüde bu satırı kullanabilir
+1

Ahhh, grid.getData, ben arıyordum yöntemdi tıklayın. BUT grid.getData [value] işe yaramadı grid.getData(). GetItem (value) kullanmak zorunda kaldı. – Preli

+0

Özür dilerim, Andrew Child'ın çatalı (https://github.com/andrewchilds/SlickGrid) kullanıyorum ve bu kod iyi çalışıyor. – matma

+0

'grid.getData() [value] 've' grid.getData(). GetItem (value) 'arasındaki farkın, gridde depolamak için kullanılan türle ilgili olduğunu düşünüyorum: eski diziler için çalışıyor, Slick için ikinci .Veri görünümü. Demek istediğim, tahmin ediyorum; Tamamen yanlış olabilirdim, ama dene. –

1

:

var selectedData = [], 
    selectedIndexes; 

selectedIndexes = _grid.getSelectedRows(); 
jQuery.each(selectedIndexes, function (index, value) { 
    selectedData.push(_dataView.getItemById(value)); 
}); 
+2

Aslında getItemByIdx'i kullanmak istediğinize inanıyorum, getItemById. getItemByIdx, verileri, verilerinizi oluştururken verdiğiniz benzersiz kimliğe göre alırken getItemByIdx, verileri dizine göre alır. Her öğe için belirttiğiniz kimlik kılavuzdaki dizinine eşitse, aynı şeyi yaparlar. Ancak benim durumumda uyuşmuyorlardı. Kod için teşekkürler. – dallin

+0

Sorun değil dostum! Umarım senin için çalışır. – Axle

3

Bir hata yaptınız. "GetDataItem" olmalı ve "getData" değil. Eğer gibi diğer kontrolünden ızgara erişiyorsanız

var selectedData = [],enter code here`selectedIndexes; 

selectedIndexes = _grid.getSelectedRows(); 
jQuery.each(selectedIndexes, function (index, value) { 
    selectedData.push(_grid.getDataItem(value)); 
}); 
+0

DataView kullanmıyorsanız, çözüm @matma düzgün çalışır. Bu gerçekten bir hata değil. Çözümünüz her zaman işe yarayacağı için muhtemelen daha iyidir. – idbehold

0

. düğmesi

var selectRow = gridInstance.getSelectedRows(); 
alert(gridInstance.getDataItem(selectRow).columnName) 
1
hObjMarcado = (grid.getSelectedRows()); 
for(var a_id in hObjMarcado) { 
    vres.push(dataview.getItem(hObjMarcado[a_id])); 
    //la opcion getItem obtiene el elemento especifico, 
    //aun con filtro. 
} 
return vres; 
+2

Lütfen İngilizce yazmayı deneyin – Leeor