Как исправить Javascript, больше не работающий после конвертации в ядро ​​2.2 - PullRequest
0 голосов
/ 24 октября 2019

Я конвертирую приложение из Core 1.1 в 2.2. Теперь некоторые из моих JS не работают

После преобразования я заметил, что мои столбцы больше не сортируются, когда я нажимаю на них. Я добавил JS-код, и теперь он работает. Именно тогда я обнаружил, что там была пользовательская библиотека JS с кодом сортировки, но он больше не работал.
Я также обнаружил, что фильтрация (на стороне клиента) не работает.

Я преобразовалкод, следуя инструкциям в https://docs.microsoft.com/en-us/aspnet/core/migration/1x-to-2x/?view=aspnetcore-1.1

Вот сценарий JS для выполнения фильтрации.

(function ($) {
$.fn.appgrid = function appgrid() {
function configureFilter() {
            $("[data-update-departments]").on("change", function () {
                var triggerControl = $(this);
                var connectedControl = $(triggerControl.data("update-departments"));

                if (!connectedControl.data("default")) {
                    connectedControl.data("default", connectedControl.children());
                }
                var triggerValue = triggerControl.find(":selected").val();

                if (triggerValue) {
                    $.getJSON("/ManageNomination/GetDepartments?company=" + triggerValue, function (data) {
                        if (data) {
                            connectedControl.children().remove();
                            connectedControl.append('<option value=""></option>');
                            for (var i = 0; i < data.length; i++) {
                                connectedControl.append('<option value="' + data[i] + '">' + data[i] + '</option>');
                            }
                            connectedControl.removeAttr("disabled");
                        }
                    });
                } else {
                    connectedControl.children().remove();
                    connectedControl.attr("disabled", "disabled");
                }
            })

            $("#applyFilter").on("click", function () {
                filter = $.extend({}, defaultFilter);
                $("[id^=filter-]").each(function () {
                    var control = $(this);
                    var controlId = control.attr("id").substr(7);
                    if (this.type === "text" || this.type === "date") {
                        filter[controlId] = control.val();
                    } else if (this.type === "select-one") {
                        filter[controlId] = control.find(":selected").val();
                    }
                });

                localStorage.setItem('filter', JSON.stringify(filter));

                refreshData();
                $("#filter-applied-message").show();
            });

            $(".clearFilter").on("click", function () {
                filter = $.extend({}, defaultFilter);
                localStorage.removeItem('filter');
                localStorage.removeItem('currentPage');
                refreshData();
                $("#filter-applied-message").hide();
                setFilterControlValues();
            });

            setFilterControlValues();
        }

        function setFilterControlValues() {
            // repopulate the filter fields with the saved filter values
            $("[id^=filter-]").each(function () {
                var control = $(this);
                var controlId = control.attr("id").substr(7);
                control.val(filter[controlId] || defaultFilter[controlId] || "");

                if (this.type === "select-one" && control.data("update-departments")) {
                    if (control.find(":selected").val()) {
                        // control is a connected dropdown and has a selected value
                        $(control.data("update-departments")).removeAttr("disabled");
                    } else {
                        $(control.data("update-departments")).attr("disabled", "disabled");
                    }
                }

                // open the filter panel automatically
                //$(".filterPanel").collapse("show");
            });
        }

Таким образом, раскрывающиеся списки для фильтрации заполняются, но когда я выбираю значение для фильтрации, ничего не происходит.

TIA

HaYen

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...