I'm building a grid in my .cshtml file, with InCell edit mode and a destroy command, but I want to conditionally disable the grid based on an app-wide SaveEnabled setting (wired up to a user's access). No matter how I combine Editable.Enabled and Editable.Mode, it never seems to set editable.enabled in the generated javascript.
When SaveEnabled is false, the command column gets hidden, but the Access Level column is still editable. Here's the generated javascript for editable:
@(Html.Kendo().Grid<WebAreaGroupAccess>()<br> .Name("areaGroupAccess")<br> .Columns(col =><br> {<br> col.Bound(g => g.ActiveDirectoryGroupId).Title("Group").Width("30%").EditorTemplateName("ActiveDirectoryGroup").ClientTemplate("<a class='StandardHyperlink' href=/CPQ-IFO/Admin/Groups/${ActiveDirectoryGroupId}>${ActiveDirectoryGroupId}</a>");<br> col.Bound(g => g.Description).Title("Group Description").Width("30%");<br> col.Bound(g => g.AccessLevel).Title("Access Type").Width("20%").EditorTemplateName("AccessLevel").ClientTemplate("#= AccessLevel == 0 ? 'Read-Only' : 'Read/Write' #");<br> col.Command(command => { command.Destroy(); }).Width("20%").Hidden(!Model.PageDataModel.SaveEnabled);<br> })<br> .Editable(edit =><br> {<br> edit.Enabled(Model.PageDataModel.SaveEnabled);<br> edit.Mode(GridEditMode.InCell);<br> })<br> .ToolBar(toolbar => toolbar.Create())<br> .Events(e => e.Edit("onEdit").Save("onSave").Remove("setSaveRequired"))<br> .DataSource(ds => ds<br> .Ajax()<br> .Batch(true)<br> .ServerOperation(false)<br> .Read(read => read.Action("AreaGroup_List", "Area", new { AreaCode = Model.Area.WebAreaCode }))<br> .Create(update => update.Action("AreaGroup_Create", "Area"))<br> .Update(update => update.Action("AreaGroup_Update", "Area"))<br> .Destroy(update => update.Action("AreaGroup_Delete", "Area"))<br> .PageSize(10)<br> .Model(m =><br> {<br> m.Id(g => g.ActiveDirectoryGroupId);<br> m.Field(g => g.ActiveDirectoryGroupId).DefaultValue("LNA-ISOURCE_ACCOUNT_ADMIN");<br> m.Field(g => g.Description).Editable(false);<br> m.Field(g => g.AccessLevel);<br> m.Field(g => g.WebAreaCode);<br> })<br> .Events(e => e.Sync("onSync").Error("onError"))<br> )<br> )When SaveEnabled is false, the command column gets hidden, but the Access Level column is still editable. Here's the generated javascript for editable:
"editable":{"confirmation":"Are you sure you want to delete this record?","confirmDelete":"Delete","cancelDelete":"Cancel","mode":"incell","template":null,"create":true,"update":true,"destroy":true}