如何启用MVVM禁用的Kendo DropDownList?

时间:2016-06-22 03:48:43

标签: javascript asp.net-mvc kendo-asp.net-mvc kendo-mvvm



<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>
&#13;
&#13;
&#13;

我有一个使用MVVM绑定初始化的下拉列表,并按预期禁用它。

现在在某些情况下,我希望在其他控件触发的某些事件中启用此下拉列表程序。

在那个事件处理程序中,我称之为:

$("#ddlFailureCategory").data("kendoDropDownList").enable(true);

,如API Kendo DropDownlist API: enable

中所述

但是它不起作用,下拉列表仍然被禁用,而没有任何JavaScript错误。

我也试图直接在Chrome开发者控制台中输入JavaScript,找到该元素,.data()&amp;调用.enable()时没有任何错误。

我的方法有什么问题,我怎样才能实现预期的行为?感谢

2 个答案:

答案 0 :(得分:1)

要展开@AndreiDragotoniu的答案,如果Layout是您的视图模型,则需要将isDisabled设置为false

但要做到这一点,你需要将其作为 Layout.set('isDisabled', false); ,只是直接分配值不会触发双向绑定的相应事件。

答案 1 :(得分:0)

下拉列表的禁用状态由

控制
Layout.isDisabled

如果符合您想要的条件,请将其设置为false。

Layout.isDisabled = false;

如果你使用MVVM然后使用MVVM,不要试图绕过它以获得你需要的东西。