我没有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;
}
根据Chrome的DevTools,此样式已应用于每个单元格。 table元素具有类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);
只要单元格没有换行符,此代码就可以很好地发挥作用。
我刚刚发现我的JSON数据包含换行符。找到更多信息后,我会进行更新。
{IdProject: 35, Name: "SAP-IT Projekt
↵ Welle 1", Description: null,
更新:SQL数据包含换行符...请参见答案。
答案 0 :(得分:0)
结果表明,当数据库包含换行符时,您将在HTML中获得换行符。如果有人解决方案导致DataTables过滤掉单元格数据中的换行符,我将把它标记为可接受的答案。否则,我会建议大家避免在SQL数据中出现换行符。