<select id="ddlFailureCategory" class="full-width"
required="required"
data-required-msg="@(String.Format(Resources.Error.RequiredField, Resources.Wording.FailureCategory))"
data-bind="source: DataSource.FailureCategoryDropDown, value: ViewModel.FailureCategory, disabled: Layout.isDisabled"
data-role="dropdownlist"
data-value-primitive="true"
data-value-field="Code"
data-text-field="Description">
</select>
我有一个使用 MVVM 绑定(bind)初始化的下拉列表,并且按预期禁用。
现在在某些情况下,我想在其他控件触发的某些事件中以编程方式启用此下拉列表。
在该事件处理程序中,我将此行称为:
$("#ddlFailureCategory").data("kendoDropDownList").enable(true);
如 API Kendo DropDownlist API: enable 中所写
但是它不起作用,下拉列表仍然被禁用,同时没有任何 JavaScript 错误。
我也尝试直接在 Chrome 开发者控制台中输入 JavaScript,找到了该元素,.data()
和 .enable()
被调用,没有任何错误.
我的方法有什么问题以及如何实现预期的行为?谢谢
请您参考如下方法:
扩展@AndreiDragotoniu的答案,如果 Layout
是您的 View 模型,您需要将 isDisabled
设置为 false
。
但要做到这一点,你需要将其设置为 Layout.set('isDisabled', false);
,直接赋值不会触发双向绑定(bind)的适当事件。