Kendo UI Grid .Net MVC - 仅在创建时可编辑列

问题描述 投票:0回答:2

我一直在搜索如何使 Kendo Grid ASP.Net MVC (Razor) 中的列仅在创建时可编辑,而在更新时不可编辑。

有什么特别的东西可以帮助我完成这项任务吗?

asp.net-mvc kendo-grid kendo-asp.net-mvc
2个回答
2
投票

您可以将自定义函数绑定到 onEdit 事件并使该列只读:

@(Html.Kendo().Grid<DemoType>()
      .Name("grid")
      .Columns(columns =>
      {
         /*...*/
      })
      .Events(events => events
          .Edit("onEdit")
      )
  )

Javascript:

function onEdit(e) {
    if (e.model.isNew() == false) {
        //$('[name="YourcolumnName"]').attr("readonly", true);
        //replace input with span
        //taken from https://stackoverflow.com/questions/3142990/jquery-replace-inputs-with-spans
        $('[name="YourcolumnName"]').each(function() {
          $("<span />", { text: this.value}).insertAfter(this);
          $(this).hide();
       });
    }
}

0
投票

您只需检查该行的 id 即可确定该行是否正在添加或编辑。

您可以这样做:

@(Html.Kendo().Grid<Model>()
  .Name("grid")
  .Columns(columns =>
  {
      columns.Bound(p => p.id).Visible(false);
      columns.Bound(p => p.your_column).Editable("isEditable");
  })
)

...

<script>
   function isEditable(dataItem) {
      return !(dataItem.id > 0);
   }
</script>
© www.soinside.com 2019 - 2024. All rights reserved.