2011-11-23 25 views
9

'da bir satır nasıl seçilir? Uygulamamda datatables kullanıyorum. Kullanıcı herhangi bir satıra tıkladığında, onu vurgulamak ve seçilen satırdan bazı değerler seçmek istiyorum. Jquery datatable

"oTableTools": { 
       "sRowSelect": "single", 

       "fnRowSelected": function (node) { 
        var s=$(node).children(); 
         alert("Selected Row : " + $s[0]); 
        } 

Ben sRowSelect ve fnRowSelected ama hiçbir şans çalıştı. Satır vurgulanmamış ve ne fnRowSelected çağrılır. Konsolda bile hata yok. İşte

benim tam kod ben bir şey eksik

var userTable = $('#users').dataTable({ 
      "bPaginate": true, 
      "bScrollCollapse": true, 
      "iDisplayLength": 10, 
      "bFilter": false, 
      "bJQueryUI": true, 
      "sPaginationType": "full_numbers", 
      "oLanguage": { 
       "sLengthMenu": "Display _MENU_ records per page", 
       "sZeroRecords": "Enter a string and click on search", 
       "sInfo": "Showing _START_ to _END_ of _TOTAL_ results", 
       "sInfoEmpty": "Showing 0 to 0 of 0 results", 
       "sInfoFiltered": "(filtered from _MAX_ total results)" 
      }, 
      "aaSorting": [[ 0, "asc" ]], 
      "aoColumns": [/* Name */ null, 
          /*Institution*/null, 
          /*Email*/null], 
      "oTableTools": { 
       "sRowSelect": "single", 

       "fnRowSelected": function (node) { 
       alert("Clicked"); 
        } 
      }  
     });  

Am nedir?

DÜZENLEME: HTML tabloya
Şimdi mümkün seçilmiş vurgulamak için row.Added class = "ekran". Hala neden bu veri dosyalarında bulamadığımı merak ediyorum. Şimdi seçilen değerleri nasıl toplayacağınıza bakmak.

cevap

5

(Kullanıcıların tablo kimliği ise) Eğer fnRowSelected kullanırken ben bunu nasıl

sadece sayfanıza

$("#users tbody").delegate("tr", "click", function() { 
var iPos = userTable.fnGetPosition(this); 
if(iPos!=null){ 
    //couple of example on what can be done with the clicked row... 
    var aData = userTable.fnGetData(iPos);//get data of the clicked row 
    var iId = aData[1];//get column data of the row 
    userTable.fnDeleteRow(iPos);//delete row 

} 
+0

Basit bir çözüm sunduğunuz için teşekkürler. Seçilen satırı bulmak için "$ (. Row_selected)" ifadesini kullandım ve ardından jQuery selector kullanarak tüm verileri tekrar filtreledim. – xyz

0

Seçilen sınıf, İşlevinizde $s kullandı ve aynı var olmayan var s tanımlamanız gerekir. İşte

"oTableTools": { 
      "sSelectedClass": "yourclassname", 
      "sRowSelect": "single", 
      "fnRowSelected": function (node) { 
       var s=$(node).children(); 
        alert("Selected Row : " + s[0]); 
       } 
     } 
+0

Kendi sınıfımızı ' sSelectedClass'? – xyz

+0

Bilmiyorum, ancak işlevinizin içinde bir hata olduğundan, vurgulama kesintiye uğramış olabilir. – Niels

+0

Değiştirdim, teşekkürler. Düzenlememi kontrol et. Hala çalışmıyor. – xyz

3

bu işlev eklemek (yani yeni tabletool oluştururken) Sorunu çözmeniz gereken

. Eğer yardımcı olursa lütfen yorum sayımı artırın. Daha fazla noktaya ihtiyacım var.

pqrtbl = new TableTools(NameOfTbl, { "sRowSelect": "multi", 
             "fnRowSelected": function (node) { 
              var s= $(node).children(); 
              fnAddToSelLst(s[1].innerText); 
             },....................... 

//column index depend upon your req. 
0

şöyle

I will Birden satırı seçmek istiyorsan, ister ajax amaçla seçilen satırın verileri bu

http://jsfiddle.net/ezospama/1/

DataTable kodunu kontrol olsun benim kodunda kullanılan aşağıdaki gibi olmalıdır

$(document).ready(function() { 
    var table = $('#datatable').DataTable(); 

    $('#datatable tbody').on('click', 'tr', function(){ 
     $(this).toggleClass('selected'); 
    }); 

    $('#btn').click(function() { 
     console.log(table.rows('.selected').data()); 
     alert("Check the console for selected data"); 
    }); 
}) 
İlgili konular