jQuery DataTables: избегать разрывов строк в ячейках - PullRequest
0 голосов
/ 16 октября 2018

У меня нет проблемы с CSS, но есть логическая проблема.Я хочу избавиться от автоматических разрывов строк в ячейках таблицы.По какой-то причине длинные фрагменты данных разбиты на две строки, даже в самом HTML.Это означает, что ни один из классических атрибутов CSS здесь не поможет.

Пример:

<td class="sorting_1">SAP-IT Projekt
 Welle 1</td>

Значение внутри элемента td разделено на два.

То, что я пробовал:

            {
                "data": "Project.Name",
                "editField": "ProjectEntry.IdProject",
                "render": function (project) {
                    // This code doesn't really work, the cells still contain linebreaks.
                    project = project.trim().replace(/(\r\n\t|\n|\r\t)/gm, "");
                    console.log(project);
                    return project;
                }
            }

Примечание: регистрация в этой функции рендеринга выводит строку без разрывов строк.

Я думаю, что мне не хватает важной части конфигурации, которая предотвращает эти автоматическиепереносы строк.

В таблице раньше использовался «отзывчивый» фрагмент конфигурации, но я его убрал.


Обновление:

Вот стиль каждогоячейка:

#ProjectEntryDataContainer, #ProjectEntryDataContainer > div > table > tbody > tr > td {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    table-layout: fixed;
}

Этот стиль применяется к каждой ячейке, согласно DevTools Chrome.Элемент таблицы имеет класс nowrap.

. Как я уже говорил, CSS не имеет ничего общего с моей проблемой.Текст отображается в одну строку, но элемент HTML содержит разрыв строки.Я хочу избавиться от разрыва строки в моем HTML, чтобы я мог правильно искать ячейки, используя код jQuery.В настоящее время я использую следующий код для поиска в моих ячейках:

var project = rowData.Project.Name.trim().replace(/(\r\n\t|\n|\r\t)/gm, "");

// Find our required cell that we want to edit. If we can't find one, create a new one.
    var colHeaderTarget = $("#ProjectEntryData").find('th:contains("Arbeitsstunden")')[0];
    var rowHeaderTarget = $("#ProjectEntryData").find('td:contains("' + project + '")')[0];

    var projectRows = $("#ProjectEntryData").find("tr:contains('" + project + "')");
    console.log(project);
    console.log(projectRows);

Этот код прекрасно работает, если в ячейке нет разрывов строк.

screenshot of the application


Я только что узнал, что мои данные JSON содержат разрывы строк.Я обновлю, как только узнаю больше.

{IdProject: 35, Name: "SAP-IT Projekt
↵ Welle 1", Description: null,

Обновление: данные SQL содержали разрывы строк ... См. Ответ.

1 Ответ

0 голосов
/ 16 октября 2018

Оказывается, что когда ваша база данных содержит разрывы строк, вы получите разрывы строк в HTML.Если у кого-то есть решение, которое заставляет DataTables отфильтровывать разрывы строк в данных ячейки, я отмечу это как принятый ответ.В противном случае я просто советую всем избегать разрывов строк в ваших данных SQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...