KendoDropDownList默认选中的值在控制器上无法正常工作

时间:2018-05-29 14:14:11

标签: javascript c# kendo-ui

我遇到了DropDownList的问题,我将默认值设置为它,但是当我将它发送到我的控制器时为空。如果我手动更改DropDownList,则可以正常工作。

此函数创建一个新的DropDownList

function alternarDropDown(e) {
    var data = [
        { text: "RESTRIÇÃO", value: "R" },
        { text: "PENALIZAÇÃO", value: "P" }
    ];
    var dropdown = $("#IndiceRestricaoPenalizacao");
    dropdown.kendoDropDownList({
        dataSource: data,
        dataTextField: "text",
        dataValueField: "value",
        height: 100,
        change: onChange,
    }).data("kendoDropDownList").select(1);

    alert(dropdown[0].value);

    if (dropdown[0].value != "R") {
        var input = $("#VelocidadeRestricao");
        input[0].setAttribute("disabled", "disabled");
    }
}

警报显示正确的选定值。

在我的控制器中

public ActionResult CriarParamentrosAlarmeCBTC([DataSourceRequest] DataSourceRequest request, ParamentrosAlarmeCBTC alarme, int idAlarme)
    {
        try
        {
            if(TipoAlarmeBusiness.ValidarFaixaAlarmeCBTCJaExistente(alarme))
                ModelState.AddModelError("", "A faixa inserida já está cadastrada!");
            else
                TipoAlarmeBusiness.CriarParametroAlarmeCBTC(alarme, idAlarme);

            return Json(new[] { alarme }.ToDataSourceResult(request, ModelState));
        }
        catch (Exception ex)
        {
            ModelState.AddModelError("", ex.Message);

            return Json(new[] { alarme }.ToDataSourceResult(request, ModelState));
        }
    }
当我使用默认值发送时,

alarme.IndiceRestricaoPenalizacao为空。

我认为.data("kendoDropDownList").select(1)触发了所选内容,但它不起作用。那么如何触发默认选择值?

1 个答案:

答案 0 :(得分:0)

试试这个:

...
var dropdown = $("#IndiceRestricaoPenalizacao");
dropdown.kendoDropDownList({
    dataSource: data,
    dataTextField: "text",
    dataValueField: "value",
    height: 100,
    change: onChange
});

// set the dropdown value to your default value
$("#IndiceRestricaoPenalizacao").data('kendoDropDownList').value("R");

另一个选项是在HttpGet中设置值。 MVC会自动绑定它。