使用外部数据集和数据渲染时的标签问题,使用数据表
Problem with tags when using external dataset and data-render, using datatables
我有一个项目,我在其中使用 DataTables 和 yadcf。
到目前为止,我在生成 DOM 时使用 PHP 来填充 table。
现在我想使用 AJAX 填充 table,它工作正常,只是它破坏了 yadcf "tags" 功能。如果我想让它工作,我需要通过 AJAX 发送完整的 HTML 格式的标签列表。
我希望它只将标签作为数组发送,并使用 DataTables 中的 "render" 函数,将它们转换为单独的 DOM 元素。
我尝试在 yadcf 的 "column_data_type" 中同时使用 "html" 和 "rendered_html",但没有任何效果。
var dataset = [{"name":"B. Gates", "tags":["js", "css", "asp"]},{"name":"S. Jobs", "tags":["js", "css", "php"]}];
var table = $('table').DataTable({
data: dataset,
columns: [
{"data": "name"},
{
"data": "tags",
"render": function(data, row, type){
var tags = '';
for (i=0; i<data.length; i++)
{
tags += '<span class="badge badge-secondary">' + data[i] + '</span> ';
}
return tags;
}
}
]
});
yadcf.init(table, [
{
column_number : 1,
column_data_type: "rendered_html", //html
html_data_type: "text",
filter_default_label: "Select tag"
}
]);
我在这里做了一个fiddle例子:https://jsfiddle.net/majbom/3d4npzsr/1/
在 "column_data_type" 中使用 "html" 时,标签列表在填充 table 后仍为空。
当我使用 "rendered_html" 时,我得到一个列表,其中包含 table 中所有代表的标签组合。
我想要的是 table.
中所有代表标签的列表
提前致谢:)
您应该在 yadcf init 中为该列使用 text_data_delimiter: String.fromCharCode(160)
,使用 String.fromCharCode(160)
的原因是因为不知何故
被用作字符串中的分隔符(而不是正常
space
像这样
yadcf.init(table, [
{
column_number : 1,
column_data_type: "rendered_html", //html
html_data_type: "text",
filter_default_label: "Select tag",
text_data_delimiter: String.fromCharCode(160)
}
]);
我有一个项目,我在其中使用 DataTables 和 yadcf。 到目前为止,我在生成 DOM 时使用 PHP 来填充 table。 现在我想使用 AJAX 填充 table,它工作正常,只是它破坏了 yadcf "tags" 功能。如果我想让它工作,我需要通过 AJAX 发送完整的 HTML 格式的标签列表。 我希望它只将标签作为数组发送,并使用 DataTables 中的 "render" 函数,将它们转换为单独的 DOM 元素。
我尝试在 yadcf 的 "column_data_type" 中同时使用 "html" 和 "rendered_html",但没有任何效果。
var dataset = [{"name":"B. Gates", "tags":["js", "css", "asp"]},{"name":"S. Jobs", "tags":["js", "css", "php"]}];
var table = $('table').DataTable({
data: dataset,
columns: [
{"data": "name"},
{
"data": "tags",
"render": function(data, row, type){
var tags = '';
for (i=0; i<data.length; i++)
{
tags += '<span class="badge badge-secondary">' + data[i] + '</span> ';
}
return tags;
}
}
]
});
yadcf.init(table, [
{
column_number : 1,
column_data_type: "rendered_html", //html
html_data_type: "text",
filter_default_label: "Select tag"
}
]);
我在这里做了一个fiddle例子:https://jsfiddle.net/majbom/3d4npzsr/1/
在 "column_data_type" 中使用 "html" 时,标签列表在填充 table 后仍为空。 当我使用 "rendered_html" 时,我得到一个列表,其中包含 table 中所有代表的标签组合。 我想要的是 table.
中所有代表标签的列表提前致谢:)
您应该在 yadcf init 中为该列使用 text_data_delimiter: String.fromCharCode(160)
,使用 String.fromCharCode(160)
的原因是因为不知何故
被用作字符串中的分隔符(而不是正常
space
像这样
yadcf.init(table, [
{
column_number : 1,
column_data_type: "rendered_html", //html
html_data_type: "text",
filter_default_label: "Select tag",
text_data_delimiter: String.fromCharCode(160)
}
]);