2010-07-22 26 views
9

Umarım bu çok hızlıdır!jqGrid getData sadece şu anki sayfa için veriyi döndürür

'clientSide' (yerel) verilerini kullanarak düzenlenebilir bir ızgaram var ve şimdi javascript'teki tüm satırları yinelemek ve verileri bir jQuery.ajax çağrısı aracılığıyla sunucuya göndermeden önce işlemek/paketlemek istiyorum.

Sorun şu ki, şu kod kullanılarak aşağıdaki kodu kullanarak beklenmedik bir şekilde (şimdilik benim için) şu anda görünür olan kılavuz sayfasının satırlarını yalnızca! Şebekeye TÜM satırları nasıl alabilirim (yani, her biri 10 kayıttan oluşan dört sayfam var ve bu kod, 1. sayfadayken sadece ilk 10 değerini döndürüyor)? İstemcilerde bir yerde olmalılar çünkü etrafta gezinebiliyor ve satırları düzenleyebiliyor ve sunucu çağırmadan veriler kalıcı oluyor! Tony :)

cacheCONF = []; 
    var rows= $('#myGrid').getRowData(); //<--Need to get ALL rows here!!! 
    var cacheRowID = 0; 
    for (var row in rows) { 
     if (rows[row].Action == 'Yes') { 
      cacheCONF.push({ RowID: rowID, System: rows[row].System, Action: rows[row].Action, Account: '-', Required: '-' }); 
      rowID++; 
     } 
    } 
+2

tarafından geçici bir çözüm bulundu sayfa boyutunu geçici olarak değiştirir. Umarım daha "resmi" bir çözüm vardır. Kod: var pageSize = $ ('# myGrid'). GetGridParam ('rowNum'); $ ('# myGrid') setGridParam ({rowNum: 10000}) tetikleyici ("reloadGrid"); getRowData, daha sonra 10000 satıra kadar çıkacaktır (bu yüzden, mümkün olan en yüksek satırlardan daha yükseğe ayarlayın). Sayfa boyutunu, kullanıcının tercihine göre ayarlamak için pageSize kullanabilirsiniz. – jqwha

cevap

8

Çözüm:

var mydata = $("#grid").jqGrid('getGridParam','data'); 
+2

Ama bu sıralama ve sonra bu işleve çağırırken, verilerin doğru sıralama sırasını döndürmez, bunun için başka bir işlev var mı? –

+0

Güzel cevap. Tabloyu yüklerken JQGrid içindeki biçimlendirici işlevleriyle veri formatladıysanız, bu yeni değerler kaybolacaktır. – will824

5

aşağıda kullanıyorum sona erdi budur, benzer bir sorunla karşılaştı olsaydı

Referans
var data = $("#table-id").jqGrid('getGridParam', 'data'); 
for (var i = 0; i < data.length; i++) { 
    var f_name = data[i].FirstName; 
    var l_name = data[i].LastName; 
    // blah... blah.. 
} 

: http://www.trirand.com/blog/?page_id=393/help/jqgrid-getdata-only-returns-data-for-current-page/

+0

Çözümünüz benim için çalıştı. getRowData() 'bir sebepten dolayı ızgaranın son sırasını döndürmedi. –

İlgili konular