我正在 angularjs 中设计一个表格,其中包含每列的多文本过滤选项,就像在 excel 中一样
I am designing a table in angularjs with multi text filtering option for each column like in excel
我正在用AngularJS设计一个有很多行和列的表。我需要添加一个过滤器按钮![过滤器按钮][1]对于每一列。单击过滤器按钮时,它应该会展开到类似 exce 的内容,它列出了列中的所有元素并选择要过滤的必要数据。有没有办法在AngularJS中做到这一点?任何想法将不胜感激。非常感谢!
让我们以这张表为例
A B C
2|4|1
3|2|2
| |3
7| |4
| |2
| |3
| |2
让我们在javascript中构建电子表格的内部结构。可以将列对象移动到 json 文件以读入以实现持久性。
var sheet = {
columns = [
[2, 3, null, 7], // A
[4, 2], // B
[1, 2, 3, 4, 2, 3, 2] // C
],
maxRowCount: function () {
var max = 0;
columns.forEach(function (item) {
max = Math.max(max, item.length);
});
return max;
}
};
function filterHandler(filterOptions, colIndex) {
// pass in an array of the values you want to show
var rowsToShow = [];
var i;
for (i = 0; i < sheet.maxRowCount(); i++) {
if (sheet.columns[colIndex] in filterOptions) {
rowsToShow.push(i + 1); // for one based rows.
}
}
return rowsToShow;
}
从这里你需要用 dom 做一些事情。 使用复选框列表之类的内容来标记要筛选的项目。 将其传递到 filterHandler 中。它将返回要显示的索引数组。隐藏所有其他内容。
若要筛选值 2 和 4 上的列 C,请执行以下操作
var showRows = filterHandler([2, 4], 2);
// showRows == [2, 4, 5, 7]
因此,隐藏所有不在showRows数组中的行。
相关文章:
- 使用jquery过滤逗号分隔的span文本
- 在AngularJS中过滤-html标签中的文本
- 过滤包含一些文本的 PHP 数据表
- 使用JavaScript过滤从网页复制的文本的最简单方法
- 在Javascript中,给定值,从Object文本中查找值并过滤特定值
- jQuery移动列表过滤:如何更改清除按钮文本
- 如何在javascript中过滤/阻止特定文本
- PubNub Twitter数据流中的文本过滤
- 我想在列表中过滤文本框值是否使用挖空更改
- Javascript - 使用文本输入框过滤数据
- 如何在块内浮动文本,就像它是内联的一样
- 使用复选框过滤 angularjs 中的数据,并在逗号分隔的列表中显示在文本框内
- 显示图像右侧的文本,就好像图像比实际大一样
- 过滤文本输入 JavaScript
- Regex根据文本过滤图像
- Javascript HTML文本过滤/链接
- 是否有IndexedDB的文本过滤过滤器
- 如何设置图像的高度与文本内容一样多
- 我如何像对keyup事件中的文本框一样,对单选按钮点击事件进行实时验证
- 我正在 angularjs 中设计一个表格,其中包含每列的多文本过滤选项,就像在 excel 中一样