Hi,
I'm having a problem with a dropdownlist not showing the item that is returned when datasource is refreshed. It can be tested to see what I mean in the following dojo sample. Can anyone point me in the right direction on how to get the dropdownlist to show the returned item when the "Click me" button is returned.
<!DOCTYPE html>
<
html
>
<
head
>
<
meta
charset
=
"utf-8"
>
<
title
>Untitled</
title
>
<
link
rel
=
"stylesheet"
href
=
"https://kendo.cdn.telerik.com/2019.3.1023/styles/kendo.common.min.css"
>
<
link
rel
=
"stylesheet"
href
=
"https://kendo.cdn.telerik.com/2019.3.1023/styles/kendo.rtl.min.css"
>
<
link
rel
=
"stylesheet"
href
=
"https://kendo.cdn.telerik.com/2019.3.1023/styles/kendo.default.min.css"
>
<
link
rel
=
"stylesheet"
href
=
"https://kendo.cdn.telerik.com/2019.3.1023/styles/kendo.mobile.all.min.css"
>
<
script
src
=
"https://code.jquery.com/jquery-1.12.3.min.js"
></
script
>
<
script
src
=
"https://kendo.cdn.telerik.com/2019.3.1023/js/angular.min.js"
></
script
>
<
script
src
=
"https://kendo.cdn.telerik.com/2019.3.1023/js/jszip.min.js"
></
script
>
<
script
src
=
"https://kendo.cdn.telerik.com/2019.3.1023/js/kendo.all.min.js"
></
script
></
head
>
<
body
>
<
div
id
=
"registrationForm"
>
<
input
id
=
"vessel"
class
=
"grid-class"
data-value-primitive
=
"true"
data-role
=
"dropdownlist"
data-auto-bind
=
"true"
data-text-field
=
"dn"
data-value-field
=
"id"
data-bind
=
"source: Vessels, value: VesselId"
data-filter
=
"contains"
/>
<
button
data-role
=
"button"
data-icon
=
"edit"
data-bind
=
"events: { click: onClick }"
style
=
"width: 180px"
>Click me</
button
>
</
div
>
<
script
type
=
"text/javascript"
>
$(document).ready(function () {
viewModel = kendo.observable({
VesselId: 36844,
onClick: function() {
viewModel.set('VesselId', 32638);
viewModel.Vessels.read();
},
Vessels: new kendo.data.DataSource({
transport: {
read: {
dataType: "json",
type: 'GET'
},
parameterMap: function (data, type) {
if (type === 'read') {
var value = '';
if (data.filter !== undefined) {
var filter = data.filter.filters[0];
if (filter !== undefined) {
value = data.filter.filters[0].value;
}
}
return { text: value, id: viewModel.get('VesselId') };
}
}
},
serverFiltering: true
}),
});
kendo.bind($("#registrationForm"), viewModel);
});
</
script
>
</
body
>
</
html
>