Javascript 来自tablesorter的筛选器小部件不';行不通

Javascript 来自tablesorter的筛选器小部件不';行不通,javascript,jquery,asp.net-mvc,filter,tablesorter,Javascript,Jquery,Asp.net Mvc,Filter,Tablesorter,我在MVC Razor应用程序中使用Tablesorter(2.22.1),在添加基本过滤器行时遇到问题。 我在捆绑包中添加了脚本(js插件) bundles.Add(new ScriptBundle("~/bundles/initTableSort").Include( "~/Scripts/libs/jquery.tablesorter.js", "~/Scripts/libs/jquery.tablesorter.widget

我在MVC Razor应用程序中使用Tablesorter(2.22.1),在添加基本过滤器行时遇到问题。 我在捆绑包中添加了脚本(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文件(新的),它们被添加到_布局中

@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。我不粘贴表代码,因为它太长了,而且我认为它的外观没有问题

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

拜托,有人能帮我写下我做错了什么

编辑1

我甚至用这个文档中的数据创建了一个新的项目,我仍然有同样的问题,所以我不得不做一些错误的事情,但我不知道是什么和在哪里。

如果您能提供该问题的演示,那将很有帮助

看到您正在使用一个自定义解析器来获取一个单元格数据属性,我想告诉大家这已经是内置的了;将设置为与数据属性匹配:

$(".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
        }
    }
});
希望此更改将解决您遇到的问题。

问题已解决

问题出现在.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文件,一切正常。

谢谢你的回答,我的代码现在变短了,但仍然有一个过滤器问题。我还添加了问题的屏幕。这里有一个演示:……工作正常,直到你删除了theme.blue.css,然后过滤不再工作。使用自定义时,请确保包含此css:
。过滤{display:none;}
这也解决了我的问题,但在过滤器之后,斑马条纹的行被弄乱了。节省了我的时间!!谢谢!!(我在读这篇文章之前花了这么多时间来实现过滤器)为什么!现在我对自己的困惑并不感到难过。