<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)的适当事件。


评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!