Tambahkan kolom defaultContent tambahan bergantung pada kondisi if

Selamat siang, saya telah mengisi datatable (plugin tabel untuk jQuery) dengan data yang diambil dari layanan wcf dan memiliki kolom defaultContent yang memiliki tautan dan berfungsi dengan baik, tetapi sekarang saya perlu membuat dan kolom defaultContent tambahan dengan tautan lain tergantung pada kondisi if seperti yang ditunjukkan di bawah ini

if (tipo_evento == 3213) { ... add a defaultContent...}

Saya telah mencoba menambahkan if ke kode di bawah ini tetapi tidak memungkinkan, dapatkah Anda memberi tahu saya cara menambahkan kolom tambahan? ini adalah kode meja saya

function cargarTabla() {
            $('#myTable').DataTable({
                searching: false,
                paging: false,
                responsive: true,
                ordering: false,
                bInfo: true,
                bLengthChange: false,
                processing: true,
                info: true,
                deferRender: true,
                orderMulti: false,
                bAutoWidth: false,
                "ajax": {
                    "url": "/Home/CargarTabla?id=" + noDocumento + "&grupo=" + grupoDT,
                    "type": "GET",
                    "datatype": "json"
                },
                "columns": [
                        { "data": "nombres", "autoWidth": false, "orderable": false, "sClass": "alignRight", "sWidth": "18%" },
                        { "data": "apellidos", "autoWidth": false, "orderable": false, "sClass": "alignRight", "sWidth": "18%" },
                        { "data": "dui", "autoWidth": false, "orderable": false, "sClass": "alignRight", "sWidth": "5%" },
                        { "data": "numero_isss", "autoWidth": false, "orderable": false, "sClass": "alignRight", "sWidth": "5%" },
                        { "data": "cargo_participante", "autoWidth": false, "orderable": false, "sClass": "alignRight", "sWidth": "20%" },
                        { "data": "genero", "autoWidth": false, "orderable": false, "visible": false },
                        { "data": "nivel_puesto", "autoWidth": false, "orderable": false, "visible": false },
                        { "data": "grupo", "autoWidth": false, "orderable": false, "visible": false },
                        { "defaultContent": " <a href='/id#' id='select'>Sustituir</a>  ", "autoWidth": true, "orderable": false, "sClass": "alignRight", "sWidth": "5%" }
                ],
                "oLanguage": {
                    "sEmptyTable": "No hay registros disponibles",
                    "sInfo": " _TOTAL_ registros. Mostrando de (_START_ a _END_)",
                    "sLoadingRecords": "Por favor espera - Cargando...",
                    "sSearch": "Filtro:",
                    "sLengthMenu": "Mostrar _MENU_",
                    "oPaginate": {
                        "sLast": "Última página",
                        "sFirst": "Primera",
                        "sNext": "Siguiente",
                        "sPrevious": "Anterior"
                    },
                    "oAria": {
                        "sSortAscending": ": Activar para ordenar la columna de manera ascendente",
                        "sSortDescending": ": Activar para ordenar la columna de manera descendente"
                    }
                }
            });
        }

Saya baru saja menambahkan kode ini dari Gyrocode.com, dan berfungsi dengan baik tetapi kolom yang baru saja ditambahkan memakan terlalu banyak ruang di tabel saya, cara menambahkan "autoWidth": true, "orderable": false, "sClass": "alignRight" , "lebar": "5%" ?

"render": function (data, type, full, meta) {
                                if (type === 'display') {
                                    if (tipo_evento == 3213) {
                                        data = " <a href='/id#' id='Teliminar'>Eliminar</a> " +"|"+ " <a href='/id#' id='select'>Sustituir</a> ";
                                    } else {
                                        data = " <a href='/id#' id='select'>Sustituir</a> ";
                                    }
                                }
                                return data;

person Pablo Tobar    schedule 05.02.2019    source sumber


Jawaban (1)


Gunakan opsi columns.render untuk menghasilkan konten untuk sel.

Misalnya, untuk menghasilkan konten berdasarkan nilai variabel tipo_evento:

{ 
    "render": function(data, type, full, meta){
       if(type === 'display'){
          if(tipo_evento == 3213){
             data = "";
          } else {
             data = " <a href='/id#' id='select'>Sustituir</a> ";
          }
       }

       return data;
    },
    // ... other options ...
    "autoWidth": true, 
    "orderable": false, 
    "sClass": "alignRight", 
    "sWidth": "5%" 
}
person Gyrocode.com    schedule 05.02.2019
comment
@PabloTobar, gunakan definisi kolom di atas daripada definisi kolom Anda dengan opsi defaultContent. - person Gyrocode.com; 05.02.2019
comment
terima kasih saya menambahkan kolom tetapi dapatkah Anda membantu menentukan ukuran? baru saja mengedit pertanyaan saya, silakan periksa bagian akhir - person Pablo Tobar; 06.02.2019
comment
@PabloTobar, cukup sertakan opsi lain bersama dengan opsi render, perbarui jawaban saya. - person Gyrocode.com; 06.02.2019