javascript - 如何在handsontable上过滤时仅在下拉菜单上显示不包含HTML内容的文本?
问题描述
如何在过滤时摆脱在下拉菜单上呈现 HTML 内容?如果单元格或整列的单元格包含 HTML 数据,当我们应用过滤器时,在下拉列表中显示为 HTML 内容,我们如何在过滤时只显示没有 HTML 内容的文本?
这个小提琴包含示例(在第一列中)
var dataObj = [
['<a>Lorem</a>', 'ipsum', 'dolor', 'sit', '12/1/2015', 23],
['<a>adipiscing</a>', 'elit', 'Ut', 'imperdiet', '5/12/2015', 6],
['<a>Pellentesque</a>', 'vulputate', 'leo', 'semper', '10/23/2015', 26],
['<a>diam</a>', 'et', 'malesuada', 'libero', '12/1/2014', 98],
['<a>orci</a>', 'et', 'dignissim', 'hendrerit', '12/1/2016', 8.5]
];
var example1 = document.getElementById('example1');
var hot = new Handsontable(example1, {
data: dataObj,
columns: [
{type: 'text', renderer: 'html'},
{type: 'text'},
{type: 'text'},
{type: 'text'},
{type: 'date', dateFormat: 'M/D/YYYY'},
{type: 'numeric'}
],
colHeaders: true,
rowHeaders: true,
dropdownMenu: true,
dropdownMenu: ['filter_by_value', 'filter_action_bar'],
filters: true
});
解决方案
Handsontable 初始化程序应更改为 -:
function firstColRenderer(instance, td, row, col, prop, value, cellProperties) {
Handsontable.renderers.TextRenderer.apply(this, arguments);
td.innerHTML = value.replace(/<(?:.|\n)*?>/gm, '');
}
var hot = new Handsontable(example1, {
data: dataObj,
columns: [
{type: 'text', renderer: 'html'},
{type: 'text'},
{type: 'text'},
{type: 'text'},
{type: 'date', dateFormat: 'M/D/YYYY'},
{type: 'numeric'}
],
colHeaders: true,
rowHeaders: true,
dropdownMenu: true,
dropdownMenu: ['filter_by_value', 'filter_action_bar'],
filters: true,
cells: function (row, col) {
var cellProperties = {};
var data = this.instance.getData();
if (col === 0) {
cellProperties.renderer = firstColRenderer; // uses function directly
}
return cellProperties;
}
});
推荐阅读
- c# - UWP MapControl.Location 绑定无法正常工作
- compilation - 使用 GFortran 在同一个文件中编译模块和主程序?
- python - 我需要一个模块在我的系统上不起作用的解决方案
- python - 从图像分割中保存单个片段
- html - 如何在树结构的 html 文件中提供图像/徽标文件的路径
- c# - VS2017和VS2019的主要Activity区别
- javascript - 链接/切换类时如何防止“跳跃”?
- javascript - 结合两个对单个 json 响应执行检查的期望语句
- python - 如何在不使用 glob 的情况下将文件的递归列表输出到文本文件(python3.4)
- javascript - 如何为常量变量赋值(不在声明中)?