操作方法:阻止KendoDropDownList将选定值转换为字符串

时间:2013-08-29 11:12:32

标签: drop-down-menu kendo-ui type-conversion

我有一个KendoDropDownList,其中包含一个对象列表的数据源,如:

[{"Id":1,"Text":"Item One"},{"Id":2,"Text":"Item Two"}]

请注意,项目的Id属性是一个数字而不是字符串。

如果在从列表中选择之前检查绑定输入的值,我会收到一个数字。 从这个列表中选择一个项目后,我收到了一个文本(一个用引号括起来的数字)。

这很麻烦,尤其是在存在'hasChanges'标志的情况下。

如何修改此行为?

1 个答案:

答案 0 :(得分:2)

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
  );
});

<强> http://jsfiddle.net/pd9FS/1/