2016-04-08 17 views
5

Sto cercando di aggiungere alcuni testi e collegamenti su righe su un datatable basato sull'indice di riga.Operazioni di database Jquery basate sull'indice di riga

questo è il mio datatable parte di inizializzazione

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

Sto cercando di aggiungere testo "A" sulla prima riga e "B" su altre righe.

Come visto sul pezzo di codice sopra, ho provato a fare qualcosa di simile sulla colonna corrispondente.

{ 
         "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>"; 
          } 
         } 
        }, 

Ma ogni riga ottiene A. Sto facendo qualcosa di sbagliato ma non riesco a capire cosa.

Avrò bisogno dello stesso indice di riga che determina per la colonna successiva di includere un collegamento (o meno) ma suppongo che se riesco a risolverlo qui, il riposo sarà facile.

+0

Si dovrebbe specificare la riga, provare a utilizzare 'table.row (riga) .index() == 0 ' – Nadir

+0

'table.row (row) .index() == 0' o direttamente non puoi accedere all'indice dalla variabile row nel callback ?? –

+0

Non so molto su JS e jQuery purtroppo. Non so se posso farlo o no. Anche i metodi sopra menzionati stanno restituendo anche "A". –

risposta

8

Manca un altro parametro nella funzione di rendering denominata meta e questo memorizza l'indice di riga e colonna. Vedere la documentazione JQuery Datatables per maggiori informazioni sui parametri della funzione di rendering.

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

Come indicato nella documentazione del parametro meta è stata aggiunta solo nella versione 1.10.1

+0

Funziona! Grazie per le informazioni e la risposta –

+0

grazie anche a questo mi ha aiutato –