Включить или отключить 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"})
}