【问题标题】:Filter Widget from tablesorter doesn't work来自 tablesorter 的过滤器小部件不起作用
【发布时间】:2015-08-16 01:23:33
【问题描述】:

我在 MVC Razor 应用程序中使用 Tablesorter (2.22.1),但在添加基本过滤器行时遇到问题。 我在 bundle 中添加了脚本(js 插件)。

bundles.Add(new ScriptBundle("~/bundles/initTableSort").Include(
                "~/Scripts/libs/jquery.tablesorter.js",
                "~/Scripts/libs/jquery.tablesorter.widgets.js",
                "~/Scripts/libs/jquery.tablesorter.combined.js")
);

我还用 jquery 将它包含在 _Layout.html 中。我没有使用 jquery.latest.js,因为在我的项目中有不同的 jquery 文件(新),它们被添加到 _Layout。

@Scripts.Render("~/bundles/jquery")
...
@Scripts.Render("~/bundles/initTableSort")

我有自己的 CSS,但我不使用 Tablesorter 主题。 我的js函数:

$(".tablesorter").tablesorter({
    sortReset: true,
    sortRestart: true,
    widthFixed : true,

    textAttribute: 'data-sort',
    widgets: ["filter"],
    widgetOptions: {
        filter_external: '.search',
        filter_defaultFilter: { 1: '~{query}' },
        filter_columnFilters: true,
        filter_placeholder: { search: 'Search...' },
        filter_saveFilters: true,
        filter_reset: '.reset'
    },
    headers: {
        'th.smallChart, th.errorLink': {
            sorter: false,
            filter: false
        },
        'th.errorDifference': {
            sorter: 'data'
        }
    }

});

表中的数据由 foreach 循环呈现,但表头和表需要类/ID。表格代码我就不贴了,因为太长了,我觉得长什么样子没问题。

排序后,重置排序(第三次单击后),自定义解析器工作正常,但包含小部件“过滤器”只给了我一行来向每一列写入过滤器查询,但它不起作用。我可以写点东西,但在那之后表格没有被过滤。我不知道为什么。检查没有显示任何错误。

拜托,有人可以帮我写下我做错了什么吗?

编辑 1

我什至使用此文档 Basic Filter Tablesorter Documentation 中的数据创建了新项目,但我仍然遇到同样的问题,所以我必须做错什么,但我不知道是什么以及在哪里。

【问题讨论】:

    标签: javascript jquery asp.net-mvc filter tablesorter


    【解决方案1】:

    问题已解决

    问题出在 .css 主题文件中...我没有链接 .css 蓝色主题文件,因为我使用自己的 css,但没有关于您必须将 .css 主题文件的一部分添加到的信息使用过滤。

    你只需要添加

    /* rows hidden by filtering (needed for child rows) */
    .tablesorter .filtered {
        display: none;
    }
    
    /* ajax error row */
    .tablesorter .tablesorter-errorRow td {
        text-align: center;
        cursor: pointer;
        background-color: #e6bf99;
    }
    

    到您的 .css 文件,一切正常。

    【讨论】:

    • 这也解决了我的问题,但是在过滤器之后,斑马条纹的行被搞砸了。
    • 节省了我的时间!!多谢!! (我在阅读这篇文章之前花了很多时间来实现过滤器)
    • 为什么哦为什么!现在,我对自己感到困惑并不感到难过。
    【解决方案2】:

    如果你能提供问题的演示会很有帮助

    看到您正在使用自定义解析器来获取单元格数据属性,我想分享一下这已经是内置的;设置 textAttribute option 以匹配您的数据属性:

    $(".tablesorter").tablesorter({
        sortReset: true,
        sortRestart: true,
        textAttribute: 'data-sort',
        widgets: ["filter"],
        widgetOptions: {
            filter_external: '.search',
            filter_defaultFilter: { 1: '~{query}' },
            filter_columnFilters: true,
            filter_placeholder: { search: 'Search...' },
            filter_saveFilters: true,
            filter_reset: '.reset'
        },
        headers: {
            'th.smallChart, th.errorLink': {
                sorter: false
            }
        }
    });
    

    希望此更改能够解决您遇到的问题。

    【讨论】:

    • 感谢您的回答,我的代码现在更短了,但仍然存在过滤器问题。
    • 我还添加了问题的屏幕
    • 这是一个演示:jsfiddle.net/0cd7h0ds ....工作正常,直到您删除 them.blue.css ,然后过滤不再起作用
    • 使用自定义theme时,请确保包含此css:.filtered { display: none; }
    猜你喜欢
    • 1970-01-01
    • 2012-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-11
    • 2015-09-20
    • 2014-04-14
    • 1970-01-01
    相关资源
    最近更新 更多