当前位置: 首页 > 知识库问答 >
问题:

引导表筛选器控件扩展使用完整的选项列表填充select

高钱青
2023-03-14

我使用引导表来处理数据库中的数据。

我使用分页功能,只发送回用户使用限制和偏移选项请求的行数。

我还使用表控件扩展来方便地过滤结果。但是,当我使用select控件与data filter control=“select”一起进行筛选时,条目只是在该结果集中返回的条目。

当我应用其他过滤器时,列表将增长。我想使用API,并让它从服务器为该列表预加载所有可能项目的列表,以允许通过这些选项进行过滤。

虽然我可以将结果与每个筛选的结果集一起发回,也许是在JSON的一个单独元素中,但最好在控件本身加载后加载此列表,因为我不需要经常将该数据集发送到每个过滤器的控件。

这可能吗?我可以使用API用一组值预加载此列表吗?

github上的一个问题似乎描述了一个与我所遇到的类似的问题https://github.com/wenzhixin/bootstrap-table/issues/904并注意到一个补丁,但我不知道如何实现它。

我使用的是Bootstrap3.3。4来自maxcdn。bootstrapcdn。com和我使用的是引导表1.8。1通过cdnjs。云焰。通用域名格式

编辑:在使用FireBug逐行遍历代码以确定是否可以这样做之后,我发现了这一点。

向过滤器提供数据有两个选项。将属性data-filer-data添加到.你可以利用一个"var"或"url"选项,后面跟着一个下划线(或其他一些被丢弃的字符),然后在"var"的情况下传递一个对象名称,我的看起来像这个data-filer-data="var_OnlineValues",并使用我的对象var OnlineValue= { "": "", "开始":"开始","提交":"提交"}。我在服务器上也有一些数据,我作为JSON返回。data-filer-data="url_filename.php",返回的对象是键/值对。

我希望这能有所帮助。

共有2个答案

梁宏才
2023-03-14

您不需要修改引导表来实现这一点。有一种方法可以使用data-filer-data属性将默认值设置为下拉选择。

对头部:

<head>
    // ... included scripts go here also
    <script>
        var filterDefaults = {
            somekey: 'some string value',
            anotherkey: 'another value'
        };
    </script>
</head>

然后,将数据过滤器数据:'var:filterDefaults'添加到列:

<table id="table"
      data-toggle="table"
      data-filter-control="true">
     <thead>
         <tr>
             <th data-field="id">ID</th>
             <th data-field="name" data-filter-control="input">Item Name</th>
             <th data-field="price" data-filter-control="select" data-filter-data="var:filterDefaults">Item Price</th>
         </tr>
     </thead>
</table>
乐正远
2023-03-14

用法向列添加data-filer-data属性。

例子:

<script>
var payment_methods = {
  "PP": "PayPal - PP",
  "CC": "PayPal - CC"
};
</script>

<th data-field="payment_method" data-sortable="true" data-filter-control="select" data-filter-data="var:payment_methods">Payment Method</th>

没有用于filterData选项的文档,因此我必须阅读代码。我引用了下面的相关部分。存在子字符串(0,3),有效值为urlvar。忽略下一个字符。

如果类型是url,它会调用ajax来将响应JSON填充到选择选项中。结构很简单{key: value}。

如果类型为var,则会查找窗口[filterDataSource],该窗口是选项指定的全局变量。数据结构是简单的{key: value}对象。

    if (column.filterData !== undefined && column.filterData.toLowerCase() !== 'column') {
        var filterDataType = column.filterData.substring(0, 3);
        var filterDataSource = column.filterData.substring(4, column.filterData.length);
        var selectControl = $('.' + column.field);
        addOptionToSelectControl(selectControl, '', '');

        switch (filterDataType) {
            case 'url':
                $.ajax({
                    url: filterDataSource,
                    dataType: 'json',
                    success: function (data) {
                        $.each(data, function (key, value) {
                            addOptionToSelectControl(selectControl, key, value);
                        });
                    }
                });
                break;
            case 'var':
                var variableValues = window[filterDataSource];
                for (var key in variableValues) {
                    addOptionToSelectControl(selectControl, key, variableValues[key]);
                }
                break;
        }
    }
 类似资料:
  • 使用Boostrap表通过whenzhixin与过滤器控制扩展。http://bootstrap-table.wenzhixin.net.cn/extensions/#table-filter-control 我希望选择中显示的选项按数字顺序排序。 代码可从以下网址获取:https://jsfiddle.net/yd75psoc/4 您将看到选项按以下顺序显示:1,10,2。当前行为 我需要这些值

  • 问题内容: 除了官方文档,我只发现了这篇文章。但是它很旧而且不完整(仅可用选项)。例如,我都找不到选项。 如果存在完整列表,在哪里可以找到? 问题答案: 您可以使用 打印所有选项及其默认值。如果您具有调试版本,则也可以使用此命令为各种选项打印注释: 附注:此博客文章中有大多数描述:http : //stas-blogspot.blogspot.bg/2011/07/most- complete-l

  • 我正在使用谷歌表单的过滤功能,但无法按我想要的方式使用,已经3天了。。。 基本上,我有第1页,有一列“电子邮件”和一列“潜在客户ID”。表2具有相同的“潜在客户ID”,但已过滤。含义,第1页,其“顺序为1,2,3,4,5…”。。。第二张不是,像是2,4,5,23,41。。。我想在表1中找到正确的电子邮件地址,该地址在两个表中具有相同的Lead ID。我使用了Filter函数,它工作得非常好,因为它

  • 如何使用RxJava过滤项目列表? 我有以下代码,发出: 并且我想在之后应用筛选器。您可以在下一段代码中看到我的解决方案,但也许还有更好的方法?

  • 我需要过滤一个列表

  • 首先,我试图使选择所有复选框,如果我单击表头中的选择所有复选框,整个表行将选择并显示一个复选框反向消息,即我选择了多少复选框。这里的问题是,如果我单击select all复选框,反向消息不会显示楼上的表,即我选择了多少行。 其次,如果我从任何列中筛选任何数字,相同的数字将显示同一列中有多少行具有相同的数字。如果我选中了所有复选框,那么反向消息将显示我选中了多少行复选框。这里,问题是显示整个表行计数