2016-06-21 5 views
1

Столбец datatable выглядит шире, если значение слишком велико.jquery datatables word wrap не работает

enter image description here

я следующее this и this. и настройки ширины:

aTable = $("#printdata").dataTable({ 
    "bAutoWidth" : false, 
    "bRetrieve" : true, 
    "scrollY": 200, 
    "scrollX": true, 
    "deferRender": true, 
    "scroller": { 
      loadingIndicator: true 
      }, 
    "bServerSide": true, 
    "bProcessing": true, 
    "sAjaxSource": 'show2ndsampling.php', 
    "fnServerData": function (sSource,aoData,fnCallback){ 
      $.ajax({ 
        "dataType":'json', 
        "type":'POST', 
        "url":sSource, 
        "data":aoData, 
        "success":function(json){ 
          fnCallback(json); 
          } 
        }); 
      }, 
    "order" : [[1,"desc"]], 
    "aoColumns" : [ 
    /*serial*/{ "width": "30%", target : 3 } 
    ] 

Но нет никаких изменений в моей DataTable.

+0

Это означает, что в вашем слове нет пробелов. Вот почему это происходит. – xAqweRx

+1

Word wrap работает, когда слово имеет пространство. –

+1

Просьба указать полный код инициализации Datatables – Yuri

ответ

2

Я хотел бы сделать это

table.dataTable tbody td { 
    word-break: break-word; 
    vertical-align: top; 
} 

демо ->http://jsfiddle.net/qh63k1sg/

Это подразумевает, что autoWidth устанавливается в ложь, и вы дали столбцы фиксированную ширину (как в демо и как ОП описал, что он делает с aoColumns/columns).

+0

yes correct i set 'autowidth: false'. – nunu

1

На данный момент я могу сказать вам, что лучший способ отображения данных - изменить ваш выход.

Это означает:

  1. если вы создаете ответ на базе sql query -> вы должны оптимизировать его и добавить пробел в вашем quesry.
  2. Если вы делаете это в шаблоне -> подготовьте данные о храмовой части, например, на PHP
  3. Если вы делаете это на передней части, сделайте это в режиме JS.

PHP путь:

$result = array(/* your result */); 
foreach($result as &$answer){ 
    $answer = implode(", ", explode(",", $answer)); 
} 

JS путь:

var result = [/* your result */]; 
for(var index = 0; index < result.length; i++){ 
    result[index] = result[index].split(",").join(", "); 
} 
0

Вы можете исправить это с помощью CSS.

table /* give class of table*/ 
{ 
    table-layout: fixed; 
} 

table td 
{ 
    word-wrap:break-word; 
    overflow: hidden; 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^