2011-01-10 20 views
8

Başkalarının bu sorunla karşılaşıp karşılaşmadığını merak ettim. Başlangıçta benim tabloyu kendi görünümünde oluşturduğumda, bilgileri tutmak için her tablo satırında özel bir öznitelik kullanıyorum (customerID numaralı telefonu arayın) ajax çağrısı için aşağı inmem gerekecek. Ancak, aynı zamanda tabloya dinamik olarak satır ekliyorum ve satır için bir öznitelik içine konulacak aynı bilgileri (customerID) geri nasıl geçeceğini anlayamıyorum. Şu anda, satır eklerken yaptığım tek şey, tam olarak sütunlarımı eşleyen diziler dizileri dizisi oluşturmaktır. Bu iyi çalışıyor, ancak fazladan bilgi göndermek için yer yok.jQuery Datatables eklentisi: Tabloya satır eklerken satır özellikleri nasıl belirlenir

Satır eklerken bu bilgileri tekrar görünümüne göndermenin başka bir yolu varsa, bunu bir öznitelikte saklamanıza gerek yok. Bununla ilgili herhangi bir fikri olan var mı?

Teşekkürler.

+0

Bu özniteliği gizli sütunta saklayamıyor musunuz? – a1ex07

+0

Eklentide gizlenen bir sütunu ayarladığınızda (ayarlarda bVisible kullanılarak), eklenti tam olarak DOM'den * sütunu kaldırır ve eklenti içindeki bir değişkende saklar. Böylece kendi başıma veriyi seçemiyorum çünkü artık orada değil. –

+0

Ama yine de 'fnGetData' üzerinden erişebilirsiniz. Senin için çalışmıyor mu? – a1ex07

cevap

1

Bu sorunu, tek tek satırlarla döngü yapmak için eklentinin yerleşik işlevlerini kullanarak çözebildim. Sunucuda, müşteriye geri döndüğümde ihtiyaç duyduğum tüm bilgiler için alanlar içeren özel bir sınıf oluşturdum. Bu, tablo hücreleri için gerçek değerleri, ayrıca özniteliklere yerleştirilecek bilgileri de içerir. Bunların bir listesini (bir nesnenin = bir satırın bilgi değeri) oluşturup, bunları serileştiririm ve çağıran ajax yöntemine geri gönderirim. Aşağıdaki kod geri nesnelerin tefrika dize aldık kabul eder ve ben JS şeyler: oluşturulduktan sonra

function(rowsToAdd) { 

    var rowList = JSON.parse(rowsToAdd); // rows come back as object representations of table rows, with properties 

    $.each(rowList, function(index, row) { 
     var rowStringArray = [row.Prop1, row.Prop2, row.Prop3, row.Prop4]; 
     var rowPos = tableObject.fnAddData(rowStringArray); // add the row through the plugin, and receive the row's index in return 
     var tableRowElement = tableObject.fnGetNodes(rowPos[0]); // get reference to <tr> element just added 

     $(tableRowElement).attr('attributeINeeded', row.AttributeProp).attr('anotherAttributeINeeded', row.AttributeProp2); 
    }); 
} 
+0

Bu çözümü, önemli miktarda veri içeren bir kişiye asla önermem. * Yaratılıştan hemen sonra, tablodaki her satırda döngü yapmak için performans etkisine neredeyse hiç değmez. – Kehlan

İlgili konular