This is a migrated thread and some comments may be shown as answers.

infinite datasource read loop

2 Answers 463 Views
ComboBox
This is a migrated thread and some comments may be shown as answers.
Boschi
Top achievements
Rank 1
Boschi asked on 30 Nov 2017, 03:57 PM

Hi we have a problem with a combobox

We need this combobox to have a lot of record (around 1000-2000) and to paginate results for performance. We also need it to have virtualization cause sometimes we have to use the value method to programmatically select an element that may not be in the current pagination.

We then added a button at the left side. It opens a dialog that permits to add an element to the database, reread the combobox datasource and select the new element.

// on confirm, call our add element rest api

    // on call completed, datasource.read

         // on read promise completed, combobox.value( id of the new element )

         // combobox.trigger('change')

 

the value( id ) method starts rereading the datasource non stop, doing infinite ajax get calls to the server. We are having troubles understanding what may cause this.

in the console we read the warning i attached

this is most of the code, tell me if you need other parts: https://jsfiddle.net/mhqw922q/?utm_source=website&utm_medium=embed&utm_campaign=mhqw922q

2 Answers, 1 is accepted

Sort by
0
Boschi
Top achievements
Rank 1
answered on 30 Nov 2017, 04:58 PM

note that we found a random solution

we noticed that calling read triggered the virtual.valueMapper twice, so we used a boolean variable to make it do his things only once

this apparently solved the problem, but we really need to understand exactly what we're doing wrong

0
Veselin Tsvetanov
Telerik team
answered on 04 Dec 2017, 11:09 AM
Hi Boschi,

Attached you will find a .NET MVC project solution, which implements the described scenario. You will notice that on a click of a button a new item is added to the ComboBox DataSource, Then the Read action is triggered and the new item is successfully selected. You will notice, that these actions will not cause any errors.

Concerning the two valueMapper calls, that you have observed, those are expected. The first one will hold the value selected before the newly added item gets selected, while the second will hold the new item value.

Note, that the value mapper function relies on the order of the items in the list on the server. Therefore, the newly added item should always be added to the end of the list. Otherwise, issues as the observed may arise.

As a side-note, I noticed, that in your project you are referencing jQuery 3.2.1. Keep in mind, that this latest version of jQuery has not been yet extensively tested against Kendo. Therfore, I would suggest you to use the latest officially supported version - 3.1.1.

Regards,
Veselin Tsvetanov
Progress Telerik
Try our brand new, jQuery-free Angular components built from ground-up which deliver the business app essential building blocks - a grid component, data visualization (charts) and form elements.
Tags
ComboBox
Asked by
Boschi
Top achievements
Rank 1
Answers by
Boschi
Top achievements
Rank 1
Veselin Tsvetanov
Telerik team
Share this question
or