我有以下kendo下拉列表:
lm
然后我在javascript中的可观察绑定:
<div class="slds-form-element" id="eventSubjectItem" style="text-align: center;">
<label class="slds-form-element__label" for="eventSubjectContainer" style="color: white; font-size: 15px;">Choose Event Field To Be Used To Label Event:</label>
<div id="eventSubjectBorder" style="border-top: 2px solid #f48942;"></div>
<div class="slds-form-element__control">
<div id="eventSubjectContainer">
<input data-role="dropdownlist" id="eventSubject" data-text-field="commonName" data-value-field="apiName" data-bind="source: eventFields, value: selectedField" style="margin-top: 10px; margin-bottom: 15px;"/>
</div>
</div>
</div>
当我尝试在我的html dropdownlist元素中将'events:{change:eventLabelChange}'添加到data-bind时,我得到处理程序没有定义错误,当它显然是(有趣的是,我有另一个下拉列表具有相同的这个页面上的绑定类型与更改事件完美匹配...)。
另外......我无法获得默认值。我尝试在绑定后直接在observable之外设置dropdownlist值,然后触发change事件,但什么也没发生。
当commonName ='Subject'和apiName ='Subject'时,我执行dropdownlist.data('kendoDropDownList')。value('Subject')它有-1索引,因为它无法找到具有该值的项目,即使那里显然有一个...我真的不知道这个绑定发生了什么。
当text和value字段不是整数而是字符串时,是否有人知道如何设置默认值?显然无法弄清楚传递给value()的字符串是否与其中一个项目相同...
答案 0 :(得分:0)
使用事件绑定并将更改绑定到eventLabelChange方法。还要将属性添加为data-auto-bind = true
<input data-role="dropdownlist" id="eventSubject" data-text-field="commonName" data-value-field="apiName" data-bind="source: eventFields, value: selectedField, events:{change:eventLabelChange}" data-auto-bind="true" style="margin-top: 10px; margin-bottom: 15px;"/>
&#13;