我有一个带有对象列表数据源的 KendoDropDownList,例如:
[{"Id":1,"Text":"Item One"},{"Id":2,"Text":"Item Two"}]
请注意,项目的Id
属性是数字而不是字符串。
如果我在从列表中选择之前检查绑定输入的值,我会收到一个数字。从此列表中选择一个项目后,我收到文本(用引号括起来的数字)。
这很麻烦,尤其是在有“hasChanges”标志的情况下。
如何修改此行为?
我有一个带有对象列表数据源的 KendoDropDownList,例如:
[{"Id":1,"Text":"Item One"},{"Id":2,"Text":"Item Two"}]
请注意,项目的Id
属性是数字而不是字符串。
如果我在从列表中选择之前检查绑定输入的值,我会收到一个数字。从此列表中选择一个项目后,我收到文本(用引号括起来的数字)。
这很麻烦,尤其是在有“hasChanges”标志的情况下。
如何修改此行为?
Kendo UI 不对这种行为负责,HTML 负责。所有<select/>
选项值和<input/>
值在标记中都被视为字符串。查看下面的代码和随附的 jsFiddle 以了解不同之处。
HTML
<select id="test"></select>
JavaScript
var data = [{"Id":1,"Text":"Item One"}, {"Id":2,"Text":"Item Two"}]
$('#test').kendoDropDownList({
dataSource: data,
dataTextField: 'Text',
dataValueField: 'Id'
});
$('#test').on('change', function() {
var value,
item;
value = $(this).val();
item = $(this).data('kendoDropDownList').dataItem();
alert(
'HTML ' + value + ' is a ' + typeof value + '\n' +
'Object ' + item.Id + ' is a ' + typeof item.Id
);
});