Включить или отключить EditorTemplateName для столбца в сетке пользовательского интерфейса kendo на основе значения столбца

У меня есть сетка с одним из столбцов, есть EditorTemplate с выпадающим списком.

columns.Bound(i => i.TypeId).Title("Types").EditorTemplateName("Types").ClientTemplate("#: TypeId != 3 ? Type : '-'#").HtmlAttributes(new { @style = "text-align:center; " }).Width(75);

шаблон

@(Html.Kendo().DropDownListFor(i => i)
                .Name("TypeId")
                .DataValueField("Id")
                .DataTextField("Type")
                .BindTo((IEnumerable)ViewBag.Types)
                .OptionLabel("Select Type")
                .Value("TypeId")
)

Я хочу добиться этого, когда TypeId равен 3, и я не хочу, чтобы шаблоны редактора использовали. Я просто хочу показать "-" с отключенным состоянием.

Я мог бы отключить раскрывающийся список с помощью события onedit, но не хочу, чтобы раскрывающийся список отображался даже в отключенном состоянии.

Любая идея будет оценена.

Что я сделал, чтобы отключить шаблоны, как показано ниже:

 function disableOnEdit(e) {

        if (e.model.isNew()) {
            // Leave it editable if the row is new.
        } else {
             //Disable the editor for Element in this row.
            var select = e.container.find('input[name=TypeId]').data('kendoDropDownList');
            if (select != null && select._selectedValue == "3") {
                //var text = select.find(".k - input");
                //select.dataSource = null;
                //select._selectedValue = "-";
                //select.editTemplate = null;
                //select.innerHTML = "-";
                //select._current[0].innerText = "-";
                select.enable(false);
            } 
        }
    }

Я пробовал много вещей, чтобы удалить выпадающий список из столбца. Я новичок в интерфейсе Kendo, поэтому, пожалуйста, помогите мне.

Спасибо

1 ответ

Вы можете изменить свой шаблон, как показано ниже

@model Int32

@if(Model !=3){
@(Html.Kendo().DropDownListFor(i => i)
            .Name("TypeId")
            .DataValueField("Id")
            .DataTextField("Type")
            .BindTo((IEnumerable)ViewBag.Types)
            .OptionLabel("Select Type")
            .Value("TypeId"))
}else{
    @Html.TextBox("",Model,new{disabled="disabled"})
}
Другие вопросы по тегам