2016-04-08 13 views
5

Ich versuche, einige Zeilen und Texte in einer Datentabelle basierend auf Zeilenindex hinzuzufügen.Jquery-Datatables-Operationen basierend auf Zeilenindex

das ist meine Datentabelle Initialisierung Teil

<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> 

Ich versuche Text „A“ auf der ersten Zeile und „B“ auf anderen Zeilen hinzuzufügen.

Wie oben auf dem Codeteil zu sehen, habe ich versucht, so etwas in der entsprechenden Spalte zu tun.

Aber jede Reihe bekommt A. Ich mache etwas falsch, aber kann nicht verstehen, was.

Ich brauche den gleichen Zeilenindex, der für die nächste Spalte einen Link (oder nicht) enthält, aber ich denke, wenn ich es hier lösen kann, wird Ruhe einfach sein.

+0

Sie die Zeile angeben sollten, versuchen Sie es mit 'table.row (Zeile) .index() == 0 ' – Nadir

+0

'table.row (row) .index() == 0' oder direkt können Sie nicht auf den Index von der Zeilenvariable im Callback zugreifen ?? –

+0

Ich weiß leider nicht viel über JS und jQuery. Ich weiß nicht, ob ich es kann oder nicht. Auch die oben genannten Methoden geben alle "A" zurück. –

Antwort

8

Sie vermissen einen anderen Parameter in der Renderfunktion namens meta und dieser speichert den Zeilen- und Spaltenindex. Weitere Informationen zu den Renderfunktionsparametern finden Sie in der Dokumentation JQuery Datatables.

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

Wie in der Dokumentation angegeben wurde die Meta-Parameter nur in der Version hinzugefügt 1.10.1

+0

Funktioniert! Danke für die Infomation und Antwort –

+0

danke das hat mir auch geholfen –

Verwandte Themen