如何有条件地启用或禁用Kendo UI按钮?

时间:2015-07-07 08:24:04

标签: c# asp.net-mvc-4 razor kendo-ui

我在控制器功能中有这个词典:

Dictionary<string, bool> Editable = new Dictionary<string, bool>();
switch (Mode)
{
    case VIEW_MODE.VIEW:

        Editable.Add("FirstName", true);
        Editable.Add("MiddleName", true);
        Editable.Add("LastName", true);
        Editable.Add("DateOfBirth", true);
        Editable.Add("Age", true);
        Editable.Add("Height", true);
        Editable.Add("CityName", true);
        Editable.Add("MemberType", true);
        Editable.Add("MemberRoleList", true);
        Editable.Add("Mobile", true);
        Editable.Add("Email", true);
        Editable.Add("PIN", true);
        Editable.Add("Phone", true);
        Editable.Add("Btnsave", true);
        Editable.Add("BtnsaveAjax", true);
        Editable.Add("BtnEditAjax", false);
        break;
    case VIEW_MODE.ADD:

        Editable.Add("FirstName", false);
        Editable.Add("MiddleName", false);
        Editable.Add("LastName", false);
        Editable.Add("DateOfBirth", false);
        Editable.Add("Age", false);
        Editable.Add("Height", false);
        Editable.Add("CityName", false);
        Editable.Add("MemberType", false);
        Editable.Add("MemberRoleList", false);
        Editable.Add("Mobile", false);
        Editable.Add("Email", false);
        Editable.Add("PIN", false);
        Editable.Add("Phone", false);
        Editable.Add("Remark", false);
        Editable.Add("Btnsave", false);
        Editable.Add("BtnsaveAjax", false);
        Editable.Add("BtnEditAjax", true);

        break;
    case VIEW_MODE.EDIT:

        Editable.Add("FirstName", false);
        Editable.Add("MiddleName", false);
        Editable.Add("LastName", false);
        Editable.Add("DateOfBirth", false);
        Editable.Add("Age", false);
        Editable.Add("Height", false);
        Editable.Add("CityName", false);
        Editable.Add("MemberType", false);
        Editable.Add("MemberRoleList", false);
        Editable.Add("Mobile", false);
        Editable.Add("Email", false);
        Editable.Add("PIN", false);
        Editable.Add("Phone", false);
        Editable.Add("Remark", false);                  
        Editable.Add("Btnsave", false);
        Editable.Add("BtnsaveAjax", false);
        Editable.Add("BtnEditAjax", true);
}

根据这个字典,我需要启用或禁用视图中的一个表单按钮:

@(Html.Kendo().Button()
    .Name("BtnsaveAjax")
    .Content("Save - AJAX")
    .Enable(true)
    .HtmlAttributes(new { style = "float:right", type = "button" })
    .Events(ev => ev.Click("saveDetails"))
)

我需要使用if条件启用或禁用此按钮,这将检查我的可编辑btnsaveAjax是真还是假。

1 个答案:

答案 0 :(得分:0)

您可以在控制器中检查并通过ViewBag传递,例如:

if (Editable["BtnsaveAjax"] == true)
    ViewBag.btnIsEnabled = true;
else
    ViewBag.btnIsEnabled = false;

在您的按钮中,例如:

@(Html.Kendo().Button()
    .Name("BtnsaveAjax")
    .Content("Save - AJAX")
    .Enable((bool)ViewBag.btnIsEnabled)
    .HtmlAttributes(new { style = "float:right", type = "button" })
    .Events(ev => ev.Click("saveDetails"))
)