MVC 禁用字段(只读)基于另一个值

时间:2021-04-08 11:52:48

标签: javascript asp.net-mvc kendo-ui kendo-asp.net-mvc telerik-mvc

我正在使用 Telerik 的 MVC 产品。我有一个网格,其中可以根据另一个字段的值启用或禁用两个字段。 SetNextDueScheduleMethod 字段值可以是“Usage”、“Date”或 NULL。如果 SetNextDueScheduleMethod = "Usage",则 SetNextDueDate 应该被禁用或只读。如果 SetNextDueScheduleMethod = "Date",则 SetNextDueUOM 应该被禁用或只读。

我有一个绑定到“OnEdit”事件的脚本。我需要关于函数“OnEdit”的定义的帮助,因为当前代码没有做任何事情并且没有在控制台中给出错误:

@(Html.Kendo().Grid<EMS.Models.ForecastItem>()
          .Name("grid")
          .Events(ev => ev.Edit("onEdit"))
          .Columns(columns =>
          {
              columns.Bound(c => c.FCI_text).Title("Description").Width(240);
              columns.ForeignKey(p => p.SetNextDueScheduleMethod, (System.Collections.IEnumerable)ViewData["ScheduleMethod"], "ScheduleMethodID", "ScheduleMethodID")
                     .Title("Next Due Schedule Method").Filterable(ftb => ftb.Multi(true).Search(true)).Width(180);
              columns.Bound(c => c.SetNextDueUOM).Width(180);
              columns.Bound(c => c.SetNextDueDate).Format("{0: yyyy/MM/dd HH:mm}").Width(180);
              columns.Command(command => { command.Edit(); command.Destroy(); }).Width(230);
          })
          .HtmlAttributes(new { style = "height: 720px;" })
          .ToolBar(toolbar =>
          {
              toolbar.Excel();
          })
          .Editable(editable => editable.Mode(GridEditMode.InLine))
          .Pageable()
          .Navigatable()
          .Sortable(sortable =>
          {
              sortable.SortMode(GridSortMode.SingleColumn);
          })
          .Filterable()
          .Scrollable()
          .DataSource(dataSource => dataSource
              .Ajax()
              .PageSize(500)
              .Model(model =>
              {
                  model.Id(p => p.FCI_ID);
                  model.Field(p => p.FCI_ID).Editable(false);
              })
              .Read(read => read.Action("ForecastItems_Read", "ForecastItem"))
              .Update(update => update.Action("ForecastItems_Update", "ForecastItem"))
              .Destroy(destroy => destroy.Action("ForecastItems_Destroy", "ForecastItem"))
          )
          .Resizable(resize => resize.Columns(true))
)

<script type="text/javascript">
    function onEdit(e) {
        if (e.model.SetNextDueScheduleMethod == "Usage") {
            $(e.container).find('input[name="SetNextDueDate"]').attr("disabled", true);
          //  $("[name='SetNextDueDate']").enable(false);
        }
    }
</script>

 

0 个答案:

没有答案
相关问题