Событие изменения редактора JqwidgetGrid (JqxGrid) вызывается рекурсивно, вызывая ошибку «Превышен максимальный размер стека вызовов» - PullRequest
0 голосов
/ 21 сентября 2018

Я пытаюсь динамически добавлять строки в Jqxgrid.У меня есть выпадающий список в качестве редактора для одного из столбцов.После динамического добавления новой строки, а затем, если я изменю выбор для выпадающего списка редактора для первой строки, событие «change» выполняется рекурсивно, вызывая ошибку «Maximum стек превышен».В событии изменения я пытаюсь установить значение столбца в строке, для которой было сделано изменение.Это действие фактически делает рекурсивные вызовы для события «change».Пожалуйста, поделитесь своими мыслями, чтобы исправить это.

columns: [
                    {
                        text: 'Fee Type', columntype: 'dropdownlist', datafield: 'FeeType', align: 'left', width: 300, editable: true, sortable: false, columnsresize: true,
                        initeditor: function (row, cellvalue, editor) {


                            editor.jqxDropDownList({
                                source: feeTypeDropdownListAdapter, displayMember: 'Description',
                                valueMember: 'FeeTypeId'
                            });

                            editor.bind('select', function (event) {

                                var args = event.args;
                                if (args) {
                                    var item = args.item;
                                    if (item != null) {
                                        var feeTypeID = item.value;
                                        var fundingSource = GetFundingSource(feeTypeID, editor.jqxDropDownList('source').records);
                                        //console.log(fundingSource);
                                        var id = $('#jqxgrid').jqxGrid('getrowid', row);

                                        $("#jqxgrid").jqxGrid('setcellvaluebyid', id, "FundingSource", fundingSource);

                                    }

                                }

                        },
                        createeditor: function (row, cellvalue, editor) {


                            });


                        },

                    },
                    {
                        text: 'Fee Type', datafield: 'FundingSource', align: 'left', width: 300, editable: true, sortable: false, columnsresize: true
                    },]
...