Javascript 在维护筛选器选项的同时分页html表

Javascript 在维护筛选器选项的同时分页html表,javascript,html,search,filter,Javascript,Html,Search,Filter,对于客户,我们正在制作一个网页项目。这包括许多包含更多记录的表。 我正在寻找一种客户端方式,只显示表的某一部分(前100名,上个月的记录,诸如此类),但保留所有记录供搜索过滤器使用 我目前使用的搜索过滤器是来自W3.JS(W3.htmlFilter)的,但加载后仍显示500多条记录 主要目标如上所述,但我也会接受一个像样的解决方案,它允许我显示10条记录,而不会丢失过滤器的可选性 该表使用foreach填充,foreach根据Razor提供的集合构造每个记录 已尝试设置表的最大高度并为其设置Y形

对于客户,我们正在制作一个网页项目。这包括许多包含更多记录的表。 我正在寻找一种客户端方式,只显示表的某一部分(前100名,上个月的记录,诸如此类),但保留所有记录供搜索过滤器使用

我目前使用的搜索过滤器是来自W3.JS(W3.htmlFilter)的,但加载后仍显示500多条记录

主要目标如上所述,但我也会接受一个像样的解决方案,它允许我显示10条记录,而不会丢失过滤器的可选性

该表使用foreach填充,foreach根据Razor提供的集合构造每个记录

已尝试设置表的最大高度并为其设置Y形溢出。 已经尝试了显示:内联块,但这破坏了所有布局。 已经尝试了一些JS,它只显示某些记录,但这意味着我无法访问未显示的记录(由于Razor)

要填充我的数据,我使用此剃须刀:

@{
    var allFoo = db.GetFoos();
    var foosToShow = foos.Where(v => v.SomeCondition == true);
}
应用于表的筛选器:

<input id="filter" oninput="w3.filterHTML('#foosTable', '.filterItem', this.value)" class="w3-input" placeholder="Search for foo..." />

实际填充记录:

<tbody>
 @foreach (Foo foo in foosToShow)
 {
 <tr class="filterItem" onclick="TransferElement(this)">
  <td>@foo.Prop1</td>
  <td>@foo.Prop2</td>
  <td>@foo.Prop3</td>
  <td>@foo.Prop4</td>
  <td>@foo.Prop5</td>
  <td>@foo.Prop6</td>
 </tr>
 }
</tbody>

@foreach(foosToShow中的Foo-Foo)
{
@foo.Prop1
@foo.Prop2
@foo.Prop3
@foo.Prop4
@foo.Prop5
@foo.Prop6
}

预期结果:X记录的可筛选列表很长,其中X可以设置。

以下是使用datatables的解决方案:


风险值数据=[
[
“老虎尼克松”,
“系统架构师”,
“爱丁堡”
],
[
“加勒特·温特斯”,
“董事”,
“爱丁堡”
]
]
$(文档).ready(函数(){
$('#表_id')。数据表({
数据:数据
} );
} );
名称
工作
城市

我建议尝试一下:。它支持过滤、排序、分页、服务器端处理等等。有很好的结果:)@Aaron我也遇到过,但据我所知,它在每次搜索时都会调用服务器?考虑到服务器的位置和连接速度,这并不是一个真正的选项。这取决于您如何实现它。您还可以简单地使用数组作为数据源,并具有搜索等所有功能。如果需要帮助,请随时留言:)