Ширина комбинированного поля DataTables - PullRequest
0 голосов
/ 11 января 2011

Я применяю DataTables использовать фильтрацию, сортировку и разбиение на страницы в моей таблице HTML. Я использую следующий код для применения этих атрибутов к таблице:

$(document).ready(function() {

  <!-- Sorting and pagination -->
  var oTable = $('#mainTable').dataTable( {
    "sPaginationType": "full_numbers",
    "bJQueryUI": true
  });

  <!-- Filtering -->
  $("thead td").each( function ( i ) {
    <!-- Create and populate combo boxes -->
    this.innerHTML = fnCreateSelect( oTable.fnGetColumnData(i) );
    <!-- Filter data when selection changes -->
    $('select', this).change( function () {
      oTable.fnFilter( $(this).val(), i );
    });
  });

});

О вызове функции:

fnCreateSelect( oTable.fnGetColumnData(i));

.. поля со списком заполнены данными из таблицы. Тем не менее, поля автоматически выбираются с учетом полной длины значений (некоторые из которых охватывают много строк), поэтому столбцы имеют слишком большой размер и выходят за пределы страницы. Я определил, что это не проблема CSS, поэтому мне нужен способ заставить комбинированные блоки использовать несколько строк на запись или показывать только часть значения, чтобы я мог разместить все эти столбцы на одной странице.

Заранее спасибо!

1 Ответ

0 голосов
/ 12 января 2011

Ответьте за всех следующих:

Я изменил код в fnCreateSelect (где построены поля со списком), чтобы ограничить объем сохраняемого текста на значение в полях со списком как таковой:

function fnCreateSelect(aData) {

    var r = '<select><option value=""></option>', i, iLen = aData.length;

    for (i = 0; i < iLen; i++) {
        // If string is a URL, handle it accordingly
        if (aData[i].indexOf("href") != -1) {
            var url = aData[i].substring(aData[i].indexOf('http'), aData[i].indexOf('">'));
            r += '<option title="' + url + '" value="' + url + '">' + url.substring(0, 25);
            if (url.length > 25)
                r += '...';
        }
        else {
            r += '<option title="' + aData[i] + '" value="' + aData[i] + '">' + aData[i].substring(0, 40)
            if (aData[i].length > 40)
                r += '...';
        }
        r += '</option>';
    }
    return r + '</select>';
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...