2009-12-18 19 views
29

JQuery datatable eklentisini kullandığım bir tablodaki düğmeler içeren bir sütun var. Düğmeler "Kaldır" dır ve bu butona tıkladığınızda masadaki mevcut satırı siler.Geçerli satır, jquery datatable eklentisi ile nasıl silinir

fnDeleteRow numaralı telefonu aradığımda, ilk kez çalışıyor ancak bu satır için daha fazla zaman yok gibi görünüyor, bu nedenle satırın düzgün bir şekilde silinmesi gibi görünmüyor. this page den

+0

Daha fazla bilgi. Veritabanınızı doldurmak için ajax kullanıyor musunuz veya statik bir html tablosunu dönüştürüyor musunuz? Ayrıca: veriler neden artık doğru değil? datatable, tr (ve karşılık gelen kimlik etiketlerini) sıralamada taşımaz mı? – r00fus

cevap

61

gibi bir şey olurdu Benim için böyle çalışıyor. Belgede hazır fonksiyonda, HTML tablosunun dönüştürülmüş versiyonunu bir değişkene atarım ve tıklatılan bir düğme tıklandığında JQuery ile ebeveynler/childs'tan geçiyorum ve parametre olarak aldığınız satırı kütüphanenin fnDeleteRow() fonksiyonuna gönderirim.

Kitaplık işlevinin yorumları şöyledir. Ve kütüphanede bahsedilen bir örnek.

/** 
* Remove a row for the table 
* @param {mixed} target The index of the row from aoData to be deleted, or 
* the TR element you want to delete 
* @param {function|null} [callBack] Callback function 
* @param {bool} [redraw=true] Redraw the table or not 
* @returns {array} The row that was deleted 
* @dtopt API 
* @deprecated Since v1.10 
* 
* @example 
* $(document).ready(function() { 
*  var oTable = $('#example').dataTable(); 
* 
*  // Immediately remove the first row 
*  oTable.fnDeleteRow(0); 
* }); 
*/ 

// And here's how it worked for me. 
var oTable; 
$("document").ready(function() { 
    oTable = $("#myTable").dataTable(); 
}); 

//Remove/Delete button's click. 
$("a[name='deleteColumn']").click(function() { 
    var $row = $(this).parent().parent(); 
    oTable.fnDeleteRow($row); 
}); 
+1

+1 ama en yakın ben en yakın geçiş yaptım daha uygun bir seçici olurdu ama – cobbal

+0

sonradan mükemmel çalıştı. teşekkürler – leora

+0

Neden .get (0) eklediniz? Teşekkür ederim, benim için çalışıyor. – Shahin

0

: Kullanıcı düğmeyi tıkladığında

$('#example tbody td').click(function() { 
    /* Get the position of the current data from the node */ 
    var aPos = oTable.fnGetPosition(this); 

    //... 
}); 
+0

ama ben bir tablo hücresi – leora

2

Diyelim ki bir işlevi ekli diyelim çağrılacak.

// Delete Row 
    $('.glyphicon-minus').on("click", function() { 
     configTable.row($(this).closest("tr").get(0)).remove().draw(); 
    }); 
+4

içinde bir düğmeye tıklayarak bu işe yaramaz .. – leora

1

şuna ne dersiniz şunları kontrol edin: fonksiyon bu deneyin bu

function DeleteRow(event) 
{ 
    //get the row of the cell that is clicked 
    var $row = $(this).parents("tr").eq(0) 
    //if you need the id you can get it as 
    var rowid = $row.attr("id"); 
    //now you can call delete function on this row 
    $row.delete(); 
} 
0

: Bu işe yaramazsa

var row = $(this).closest("tr").get(0); 
oTable.fnDeleteRow(oTable.fnGetPosition(row)); 

, example

İlgili konular