2015-10-01 36 views
0

當我導航到我的jQuery DataTable時,我想顯示有多少用戶正在等待激活。通常情況下,我會使用fnGetData(this),但是因爲我不想在點擊事件上做這個事情,我只是試圖計算整個表中的數字,我不知道該怎麼做:計數值的數量jQuery Datatables

UPDATE:解決方案

$(document).ready(function() { 
    var oTable = $('#example2').dataTable({ 
      fnInitComplete: function (oSettings, json) { 

       //store table data 
       var data = this.fnGetData(); 

       var pendingCount = 0; 
       for (var i = 0; i < data.length; i++) { 
        if (data[i][5] != null && data[i][5] == '1') { 
         pendingCount++; 
        } 
       } 
       $(".panel-footer #pending").val(pendingCount); 
       //pass count to html 
       //alert(pendingCount); 
      }, 
     "sAjaxSource": "AjaxHandler", 
     "aoColumns": [ 
         { "sName": "Id" }, 
         { "sName": "ProfileId" }, 
         { "sName": "Type" }, 
         { "sName": "Name" }, 
         { "sName": "Email" }, 
         { "sName": "PendingActivation" } 
     ] 
    }); 
+1

爲了改善您的問題,請說明您當前的解決方案出了什麼問題,例如,你有任何錯誤或看到其他失敗症狀? – Olga

+1

完成...謝謝你的擡頭。 –

回答

1

SOLUTION

你在你的邏輯有些問題,儘管計算總數,看到合作下面rrected代碼:

var data = oTable.fnGetData(); 

var pendingCount = 0; 
for(var i = 0; i< data.length; i++){ 
    if (data[i][5] != null && data[i][5] == '1') { 
     pendingCount++; 
    }   
} 

//pass count to html 
$(".panel-footer #pending").val(pendingCount); 

DEMO

this jsFiddle示範。

+0

嗯似乎一直在輸出0? –

+0

@KirstyWhite,我在jsFiddle上的示例適用於HTML源數據。如果您有Ajax源數據,則需要將此代碼放入'fnInitComplete'回調中。 –

+0

@KirstyWhite,看到[這個例子](https://jsfiddle.net/Lap1p073/2/)與'fnInitComplete'也是可行的。關於你的更新:使用'this'而不是'oTable'。 –