Сделать данные столбца гиперссылкой (dataTable JQUERY)

Я пытаюсь сделать столбец гиперссылкой с datatable, но без успеха.

function successCallback (responseObj) {

  $(document).ready(function() {
         $('#example').dataTable( {
        "data":responseObj ,
        "bDestroy": true,
        "deferRender": true ,
        "columns": [
                    { "data": "infomation" },
                    { "data": "weblink" },
                ]
  } );

  } );

}

Мне нужна веб-ссылка, чтобы отобразить ссылку и быть гиперссылкой в ​​этом столбце, чтобы пользователи могли щелкнуть и перенаправить на другую страницу. Я просмотрел render, но с меньшим количеством информации там по ссылкам, я не могу это сделать.

Я также рассмотрел этот пример, но это было не очень полезно.

Ответ 1

Используйте columns.render API-метод для динамического создания содержимого для ячейки.

$('#example').dataTable({
   "data": responseObj,
   "columns": [
      { "data": "information" }, 
      { 
         "data": "weblink",
         "render": function(data, type, row, meta){
            if(type === 'display'){
                data = '<a href="' + data + '">' + data + '</a>';
            }

            return data;
         }
      } 
   ]
});

Смотрите этот пример для кода и демонстрации.

Ответ 2

    $('#example').dataTable( {
  "columnDefs": [ {
    "targets": 0,
    "data": "download_link",
    "render": function ( data, type, full, meta ) {
      return '<a href="'+data+'">Download</a>';
    }
  } ]
} );

Из документации. Для меня это совершенно ясно и понятно, что конкретно вы не понимаете? Какие ошибки вы видите?

Для более полного примера см. здесь

Ответ 3

Если вы хотите добавить ссылку, основанную на других данных столбца, можете использовать подход ниже.

$('#example').dataTable({
   "data": responseObj,
   "columns": [
      { "data": "information" }, 
      { 
         "data": "weblink",
         "render": function(data, type, row, meta){
            if(type === 'display'){
                data = '<a href="' + row.myid + '">' + data + '</a>';
            }
            return data;
         }
      } 
   ]
});

Я только что изменил функцию рендеринга. data относится только к текущим данным столбца, тогда как объект row относится ко всей строке данных. Следовательно, мы можем использовать это, чтобы получить любые другие данные для этой строки.