I had this problem when re-binding the kendo quota. Basically I had to re-query the server as if the user had typed it. Then, as soon as the request is complete, I select the correct item using the previously selected value.
var comboBoxElem = $("#controlNameHere"); comboBoxElem.kendoComboBox( { placeholder: "Start typing...", dataTextField: "yourDataTextField", // field used in the re-query due to 'contains' filter dataValueField: "yourDataValueField", filter: "contains", change: selectFunc, dataSource: { serverFiltering: true, pageSize: 20, transport: { read: { url: "http://yourUrlHere" } } } }); // the following code is all about re-selecting the previous value var comboBox = comboBoxElem.data('kendoComboBox'); var previousTextValue = 'text of the previous entry here'; var previousValue = '543'; comboBox.text(previousTextValue); // to show the user text while re-query takes place // reload previous item(s) from server, then re-select the desired item comboBox.dataSource.query({ filter: { operator: "contains", field: 'yourDataTextField', value: previousTextValue }, complete: function () { setTimeout(function () { comboBox.select(function (dataItem) { return dataItem.yourDataValueField == previousValue; }); }, 200); //allow the observable collection to be updated (no event I know of helps here :( } });
Hope this is clear enough, I modified the inline code to protect it so that the slightest syntax error may occur.
Remember that the filter that you use in the settings (settings) of the control must be the same as that you use for the second request for simplicity, otherwise you will get several filters arriving at the server.
source share