Как отключить поле во встроенном редактировании на основе значения в другом столбце в кендо? - PullRequest
0 голосов
/ 01 октября 2019

изображение моей сетки кендо

<div style="display: block; width: 100%; height: 100%">
        @(Html.Kendo().Grid<ProjectTechnologyLinkModel>()
            .Name("gridProjectTechnologies")
            .HtmlAttributes(new { @class = "k-grid-autoheight" })
            .Pageable()
            .Columns(columns =>
            {
                columns.Bound(x => x.Id).Hidden();
                columns.Bound(x => x.TechnologyId).Title("Technology Name").Width(200)
                    .EditorTemplateName("GridDropdownList")
                    .ClientTemplate("#:TechnologyName#");
                columns.Bound(x => x.Others_info).Title("Specify technology (if others only)").Width(200);//add
                columns.Bound(x => x.Percentage).Format("{0}%").Title("Percentage").Width(80);
                columns.Command(command =>
                {
                    command.Edit().UpdateText("Save");
                    command.Destroy();
                }).Width(120);
            })
            .ToolBar(t => t.Create().Text("Add"))
            .Editable(editable => editable.Mode(GridEditMode.InLine))
            .DataSource(dataSource => dataSource
                .Ajax()
                .PageSize(10)
                .Events(e => {
                    e.Error("error_handler");
                    e.Change("updateTechnologiesMultiselect");
                })
                .Model(model =>
                {
                    model.Id(x => x.Id);
                    model.Field(x => x.Id).Editable(false);
                    //model.Field(x => x.Others_info).Editable(false);
                })
                .Create(read => read.Action("AddProjectTechnologyLink", "ProjectInfo", new { projectInfoId = ViewBag.ProjectId }))
                .Read(read => read.Action("GetProjectTechnologyLink", "ProjectInfo", new { projectId = ViewBag.ProjectId }))
                .Update(read => read.Action("UpdateProjectTechnologyLink", "ProjectInfo"))
                .Destroy(read => read.Action("DeleteProjectTechnologyLink", "ProjectInfo"))
            )
            .Scrollable(p => p.Height("auto"))
            .Resizable(resize => resize.Columns(true))
            .Pageable(pagable => pagable.Refresh(true).PageSizes(new int[] { 10, 20, 50, 100 }))
        )
    </div>

У меня есть два столбца: а) Название технологии б) Укажите технологию (только для других)

Что я хочуДля этого необходимо отключить поле в столбце «Указать технологию (только для других)», если значение в «Имя технологии» не равно «Другие».

Пожалуйста, сообщите. Благодаря.

1 Ответ

0 голосов
/ 01 октября 2019

Один из способов добиться этого - применить EditorTemplates к двум столбцам. Если ваш элемент технологии Specify имеет идентификатор 2, например:

@model Int32

@if(ModelTechnologyId !=2){
@(Html.Kendo().Input(i => i)
            .Name("Others_info"))
}else{
    @Html.TextBox("",Model,new{disabled="disabled"})
}

см. Здесь другой подход: Включение или отключение столбцов сетки кендо на основе значения другого столбца

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...