1

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

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); 
      } 
     } 
    } 

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

Благодаря

+0

мне удалось сделать некоторую работу вокруг на некоторое время, как показано ниже. Таким образом, при редактировании нет ни одного раскрывающегося списка. $ ('# TypeId'). Parent() [0] .innerText = "-"; select.enable (false); –

ответ

0

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

@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"}) 
} 
+0

Мне нравится концепция. но поскольку это шаблон редактора, значение Model = 0 всегда. Мне нужно, чтобы эта логика запускалась только тогда, когда они пытались редактировать. –