我有一个项目,在这里使用DataTables和yadcf。 到目前为止,在生成DOM时,我一直使用PHP填充表。 现在,我想使用AJAX来填充表,该表工作正常,只是它破坏了yadcf的“标签”功能。如果我希望它能正常工作,则需要通过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"
}
]);
我在这里做了一个小提琴的例子:https://jsfiddle.net/majbom/3d4npzsr/1/
在“ column_data_type”中使用“ html”时,在填充表格后,标签列表仍为空。 当我使用“ rendered_html”时,我得到一个列表,其中包含表中所有表示的标签组合。 我想要的是表格中所有单独代表标签的列表。
预先感谢:)
答案 0 :(得分:0)
对于该列,您应该在yadcf init中使用text_data_delimiter: String.fromCharCode(160)
,使用String.fromCharCode(160)
的原因是因为以某种方式
被用作字符串中的分隔符(而不是普通的{{ 1}}空间
赞