JqwidgetGrid(JqxGrid)编辑器更改事件被递归调用,导致“超出最大调用堆栈大小”错误

时间:2018-09-21 17:16:23

标签: jquery jqxgrid jqwidget

我正在尝试向Jqxgrid动态添加行。我有一个下拉列表作为其中一列的编辑器。动态添加新行之后,然后如果更改第一行的编辑器下拉列表的选择,则“更改”事件将递归执行,从而导致“超出最大调用堆栈大小”错误。在更改事件中,我尝试设置进行更改的行中的列的值。此操作实际上是对“ 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
                    },]

0 个答案:

没有答案