dataTables带有选择标记的列过滤插件
我正在使用datatables v1.92以及列过滤插件v1.5.0。
问题
我需要创建用于单独列过滤的drodowns,其标记将是
Abc Def Ghi
这是因为来自数据库的1, 2, or 3
。 显示给用户的标签是Abc, Def, or Ghi
使用列过滤插件,我可以使用创建列的下拉列表
.columnFilter({ aoColumns: [ type : 'select', values:['1', '2', '3'] ] });
问题是该下拉列表的标记结果是
1 2 3
因此,用户显示为1, 2, 3
作为下拉标签而不是Abc, Def, Ghi
我做了什么
我试图硬编码数据表的
.columnFilter({ aoColumns: [ type : 'select', values:['1', '2', '3'] ] });
覆盖硬编码的下拉列表。 我甚至尝试将null
作为aoColumns
的参数aoColumns
但这不起作用,因为它只是删除了硬编码的下拉列表。
那么有没有一种方法可以创建下拉列表,其中value
属性将包含数值,而和
之间的标签将是文本?
我不确定你是否已经解决了这个问题,但是看看dataTables插件网站,我无法看到你做的事情。
但是对于解决方法,您可以手动创建菜单,然后使用
fnFilter
回调来更新具有特定值的列。
例如
–
$('select').change(function(){ yourTable.fnFilter($(this).val(),colNum); // With colNum being the targeted column. });
然后,上面将按标签的值过滤表格,例如
1
。 但是,如果您正在查看标签中包含的ABC过滤。
$('select').change(function(){ yourTable.fnFilter($('select option:selected').text(),colNum); });
希望这有一些帮助。
如果您使用的是jquery.dataTables.columnFilter.js
,那么以下方法将适用于您:
而不是写:
type : 'select', values:['1', '2', '3']
写这个:
"type": "select", values: [{ label: "ABC", value: "1" }, { label: "DEF", value: "2" }]