2016-04-08 17 views
5

Tôi đang cố gắng thêm một số văn bản và liên kết trên hàng trên một dữ liệu có thể đặt dựa trên chỉ mục hàng.Hoạt động Jquery datatables dựa trên chỉ số hàng

này là khởi tạo DataTable của tôi phần

<script> 
var datatablecompanyuser = null; 
$(document).ready(function() { 
    $.extend(true, $.fn.dataTable.defaults, { 
     "searching": false, 
     "ordering": false, 
     "paging": false 
    }); 

    var dataSourceUrl = "@Url.Action("CompanyUsersList", "Settings")"; 
    datatablecompanyuser = $('#datatablecompanyuser').dataTable({ 
     info: false, 
     ajax: { 
      "url": dataSourceUrl, 
      "type": "GET", 

     }, 
     columns: [ 
      { 
       "data": "Id", 
       "render": function (data, type, row) { 
        return "<label><input type='checkbox' value='" + data + "' name='chkGrid'><span class='text'></span></label>"; 
       } 
      }, 
      { "data": "Fullname" }, 
      { "data": "Email" }, 
      { "data": "CitizenIdNo" }, 
      { 
       "data": "CreateDate", 
       "render": function (data, type, row) { 
        return moment(parseInt(data.substr(6))).format('DD.MM.YYYY hh:mm'); 
       } 
      }, 
      { 
       "data": "Id", 
       "render": function (data, type, row) { 
        var table = $('#datatablecompanyuser').DataTable(); 
        if (table.row().index() == 0){ 
         return "<label>A</label>"} 
        else { 
         return "<label>B</label>"; 
        } 
       } 
      }, 
      { "data": "Id" }, 


     ], 
     language: { 
      "url": "//cdn.datatables.net/plug-ins/1.10.10/i18n/Turkish.json" 
     } 

    }); 

}); 
</script> 

Tôi đang cố gắng để thêm văn bản "A" trên hàng đầu tiên và "B" trên các hàng khác.

Như đã thấy trên đoạn mã ở trên, tôi đã thử thực hiện một việc như thế này trên cột tương ứng.

{ 
         "data": "Id", 
         "render": function (data, type, row) { 
          var table = $('#datatablecompanyuser').DataTable(); 
          if (table.row().index() == 0){ 
           return "<label>A</label>";} 
          else { 
           return "<label>B</label>"; 
          } 
         } 
        }, 

Nhưng mọi hàng đều nhận được A. Tôi đang làm điều gì đó sai nhưng không thể hiểu được.

Tôi sẽ cần cùng một chỉ mục hàng xác định cho cột tiếp theo để bao gồm một liên kết (hoặc không) nhưng tôi đoán nếu tôi có thể giải quyết nó ở đây, phần còn lại sẽ dễ dàng.

+0

Bạn nên xác định hàng, hãy thử sử dụng 'table.row (hàng) .index() == 0' – Nadir

+0

'table.row (row) .index() == 0' hoặc trực tiếp không thể bạn truy cập chỉ mục từ biến hàng trong callback ?? –

+0

Tôi không biết nhiều về JS và jQuery đáng buồn. Tôi không biết tôi có thể làm được hay không. Ngoài ra các phương pháp được đề cập ở trên đều trả về "A". –

Trả lời

8

Bạn đang thiếu một tham số khác trong hàm kết xuất được gọi là meta và điều này lưu trữ chỉ mục hàng và cột. Xem tài liệu JQuery Datatables để biết thêm thông tin về các tham số hàm trả về.

function (data, type, row, meta) { 
    if (meta.row == 0){ 
     return "<label>A</label>";} 
    else { 
     return "<label>B</label>"; 
    } 
} 

Như đã trình bày trong tài liệu tham số meta chỉ được thêm vào trong phiên bản 1.10.1

+0

Hoạt động! Cảm ơn bạn đã thông tin và trả lời –

+0

cảm ơn điều này đã giúp tôi –

Các vấn đề liên quan