javascript - 我的表使用 Jquery Table Sorter 获取重复的行

标签 javascript jquery html asp.net-mvc tablesorter

我的项目中有搜索字段,它使用 $.post 获取搜索查询的结果。 我的问题:当用户单击搜索按钮时,它可以正常工作,但是当用户再次单击搜索按钮,然后单击我的 thead 列时,jquery sorter 会将其与表中显示的先前搜索重复。

我该如何解决这个问题,以免我的排序器函数重复?

这是点击搜索按钮的 Jquery 代码。

     $(function () {
            $('#submitfloat').click(function () {
                $('#loading').show();
                setTimeout(function () { $("#loading").hide(); }, 800);
                var SubjectTypes = $('#SubjectTypes').val();
                var Teams = $('#Teams').val();
                var Companies = $('#Companies').val();
                var Consultants = $('#Consultants').val();
                var PlannedDates = $('#PlannedDates').val();
                var CompletedDates = $('#CompletedDates').val();
                var DateTypes = $('#DateTypes').val();
                var data = {
                    Subjectypes: SubjectTypes,
                    Companies: Companies,
                    Teams: Teams,
                    Consultants: Consultants,
                    PlannedDates: PlannedDates,
                    CompletedDates: CompletedDates,
                    DateTypes: DateTypes
                };

                var fromDate = $('#PlannedDates').val();
                var endDate = $('#CompletedDates').val();
                if (Date.parse(fromDate) > Date.parse(endDate)) {
                    jAlert("End date must be later than start date", "Warning");
                    return false;
                } else {
                    $('#GoalcardSearchResult tbody').hide();
                    setTimeout(function () { $("#GoalcardSearchResult tbody").show(); }, 800);
                    $.post('@Url.Action("Search", "SearchNKI")', data, function (result) {

                        $("#GoalcardSearchResult tbody").empty();


                        result.forEach(function (goalcard) {

                            $("#GoalcardSearchResult tbody").append(
                                $('<tr/>', {
                                    click: function () {
                                        id = goalcard.Id;
                                        var url = '@Url.Action("AnswerForm", "AnswerNKI", new { id = "__id__"})';
                                        window.location.href = url.replace('__id__', id);


                                    },

                                    html: "<td>" + goalcard.Name + "</td><td>" + goalcard.Customer + "</td><td>" + goalcard.PlannedDate + "</td><td>" + goalcard.CompletedDate + "</td>"
                                }));
                        });
                        $("#GoalcardSearchResult").tablesorter();
                    });
                    return false; 
                }
            });
        });  

感谢您的帮助,提前致谢!

最佳答案

我猜 tablesorter 在用户单击排序按钮之前已经初始化。在这种情况下,替换此代码:

$("#GoalcardSearchResult").tablesorter();

用这个:

$("#GoalcardSearchResult").trigger('update');

关于javascript - 我的表使用 Jquery Table Sorter 获取重复的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10242903/

相关文章:

javascript - 使用 Reduce 比较多个数组

javascript - 在 setTimeout 中调用超过 1 个函数

jquery - jScrollPane - 滚动条不出现

javascript - 展示类(class)形象 10 秒

javascript - Angularjs 错误 : [$injector:modulerr] http://errors. angularjs.org/1.4.7/$injector/modulerr?p0

javascript - 动态添加输入字段到Ember模板/路线/ View ,用数据更新模型

javascript - 比较通过ajax获得的字符串

JavaScript 音频对象 addEventListener canplaythrough 不适用于 IPAD Chrome

javascript - 地理位置将变量设置为当前位置

为对象中的所有属性设置javascript