2014-06-11 70 views
0

我是jQuery dataTable的初學者,最後一天我在我的網站中實現了dataTable 1.10。隱藏字段ID在第二頁中未正確顯示

enter image description here

我嘗試彈出所選行中警告窗口中的id字段。

enter image description here

,第一頁是正常工作,但是當我去到第二頁我點擊

行ID是11,但彈出窗口顯示的點擊行的id是1

請參閱下圖。

enter image description here

所有網頁都顯示這個錯誤,它只是工作

正確的第一頁。

請參閱下面的代碼。

腳本

$(document).ready(function() { 

    //$("#tblProvider").dataTable().destroy(); 

    $("#tblProvider").dataTable({ 
     bProcessing: true, 
     bPaginate: true, 
     bLengthChange: false, 
     bSort: true, 
     sAjaxSource: '@Url.Action("JsonGetAllTariffPosition", "Admin")', 
     aoColumns: [ 
      { sTitle: "Id", bVisible: true, bSortable: false }, 
      { sTitle: "Number", bSortable: false }, 
      { 
       sTitle: "Action", 
       bSortable: false, 
       mRender: function (o) { return '<i class="ui-tooltip fa fa-pencil" data-toggle="modal" style="font-size: 22px;" data-original-title="Edit"></i><i class="ui-tooltip fa fa-trash-o" style="font-size: 22px;" data-original-title="Delete"></i>'; } 
      } 
     ], 
    }); 

    $("#tblProvider").on('click', 'tr td i[class="ui-tooltip fa fa-pencil"]', function() { 

     var row_index = $(this).closest('td').parent()[0].sectionRowIndex //you need to determine this how ever you like 
     var table = $('#tblProvider').DataTable() 
     var column_data = table.row(row_index).data()[0]; 

     alert(column_data); 
    }); 
}); 

的Html

<table id="tblProvider" 
           class="table table-striped table-bordered table-hover table-highlight table-checkable" 
           data-search="true" 
           data-paginate="true"> 
           <thead> 
            <tr> 
             <th>Id</th> 
             <th>Tariff Position</th> 
             @*<th>General Tax</th> 
             <th>Consumption Tax</th>*@ 
             <th>Action</th> 
            </tr> 
           </thead> 
           <tbody> 
           </tbody> 
          </table> 

請幫助

+0

如果隱藏行存在或不存在,您是否檢查過viewsource。如果不是那麼你爲什麼不讀取第一列文本而不是索引? –

+0

我相信你的問題發生導致你在表id中聲明事件,當數據表jQuery刷新該表時更新。嘗試更改事件的元素有你的隱藏字段。希望工程! –

回答

1

與此

var node = $(this).closest('tr') 
var table = $('#tblProvider').DataTable() 
var column_data = table.row(node).data()[0]; 
的代碼替換在點擊處理程序
+0

非常感謝你先生....... –