kendo ui dropdownList禁用

时间:2015-12-29 10:18:02

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

我正在使用asp.net mvc 5与kendo ui一起工作。我有一些条件,我必须显示禁用的kendo ui dropdownlist,但是当我提交from(post)我用来绑定的模型字段时下拉列表包含null而不是value。

这是我的代码:

@(Html.Kendo().DropDownListFor(i => i.CallTypeId)
    .Name("CallTypeId")
    .HtmlAttributes(new { style = "width:100%" })
    .DataTextField("MasterValueName")
    .DataValueField("MasterValueId")
    .Enable(false)
    .DataSource(source =>
    {
        source.Read(read =>
        {
            read.Action("GetCallType", "Common", new { Area = "" });
        });
    })
    .OptionLabel("Select Call Type")
)

是否有其他替代方法可以禁用kendo下拉列表,但请记住我需要所选的值。 在此先感谢。

2 个答案:

答案 0 :(得分:1)

您没有收到该值,因为您的控件已被禁用。

根据this answer,所有已禁用的元素都不会传递给表单处理器。

我认为您必须使用ReadOnly方法而不是Enable

答案 1 :(得分:0)

如果要使用JavaScript发布表单(或具有该选项),则可以在发布之前启用该字段,以便模型包含值:

查看:

@(Html.Kendo().Button()  // hidden post button to be "clicked" from JavaScript
    .Name("btnPostForm")
    .HtmlAttributes(new { type = "submit", style = "display:none", name = "Command" })
)

脚本:

// Enable the drop-down.
$('#CallTypeId').getKendoDropDownList().enable(true);

// Post the form.
var postButton = $('#btnPostForm');
postButton.attr('value', 'SaveForm');  // optional command name for controller to read
postButton.click();