How to disable specific grid column in kendo ui Grid on inline editing

If you want to stop editing on specific Grid column in Kendo Ui grid like this


Just use theDataAnnotations [Editable(false)] in your custom class for the grid

i am just share my code for your help

 using System;  
 using System . Collections . Generic;  
 using System . ComponentModel . DataAnnotations;  
 using System . Linq;  
 using System . Web;  
 namespace FEWO . ViewModel  
 {  
   public class Limitation  
   {  
     public long Id { get; set; }  
     public int? LFDNR { get; set; }  
     public Guid? ob_guid { get; set; }  
     public DateTime? von { get; set; }  
     public DateTime? bis { get; set; }  
     public string einschrank { get; set; }  
     public string wtagvon { get; set; }  
     public string wtagbis { get; set; }  
     public int numtagvon { get; set; }  
     public int? numtagbis { get; set; }  
     public int? nummonvon { get; set; }  
     public int? nummonbis { get; set; }  
     public int? numjahrvon { get; set; }  
     public int? numjahrbis { get; set; }  
     [Editable(false)]  
     public string ob_name { get; set; }  
      [Editable ( false )]  
     public string ob_code { get; set; }  
     public DateTime FromTag { get; set; }  
     public DateTime ToTag { get; set; }  
     public string FromDay { get; set; }  
     public string ToDay { get; set; }  
   }  
 }  

in your controller for read



  public ActionResult FilterMenuCustomization_Read ( [DataSourceRequest] DataSourceRequest request )  
     {  
       return Json ( GetAllLocation ( ) . ToDataSourceResult ( request ) );  
     }  
     private static IEnumerable<Limitation> GetAllLocation ( )  
     {  
       FEWOEntities db = new FEWOEntities ( );  
       var t_institution = from p in db . einschrank  
        select p;  
       List<Limitation> limitationListObj = new List<Limitation> ( );  
       foreach ( var p in t_institution )  
       {  
         Limitation student = new Limitation ( );  
         student . Id = p . Id;  
         student . ob_guid = p . ob_guid;  
         student . ob_name = p .objects. ob_name;  
         student . ob_code = p .objects. ob_code;  
         student . von = p . von;  
         student . bis = p . bis;  
         student . FromDay =p.FromDay;  
         student . ToDay = p.ToDay;  
         student . einschrank = p . einschrank1;  
         limitationListObj . Add ( student );  
       }  
       // return View ( viewDataInstitutions . ToList ( ) );  
       return limitationListObj;  
     }  


In your index view:

 @model IEnumerable<FEWO.ViewModel.Limitation>  
 @{  
   ViewBag.Title = "Bearbeiten des Mieterstatus";  
 }  
 <h3> einschrankungen</h3>  
 <p>  
   @Html.ActionLink("zusatzleitungen neu", "Create")  
 </p>  
 <script type="text/javascript">  
   function error_handler(e) {  
     if (e.errors) {  
       var message = "Errors:\n";  
       $.each(e.errors, function (key, value) {  
         if ('errors' in value) {  
           $.each(value.errors, function () {  
             message += this + "\n";  
           });  
         }  
       });  
       alert(message);  
     }  
   }  
   function nameFilter(element) {  
     element.kendoAutoComplete({  
       dataSource: {  
         transport: {  
           read: "@Url.Action("FilterMenuCustomization_Names")"  
         }  
       },  
       optionLabel: "--Select Value--"  
     });  
 }  
 function bookingNumber(element) {  
   element.kendoAutoComplete({  
     dataSource: {  
       transport: {  
         read: "@Url.Action("FilterMenuCustomization_BookingNumber")"  
       }  
     }  
   });  
 }  
 function region(element) {  
   element.kendoAutoComplete({  
     dataSource: {  
       transport: {  
         read: "@Url.Action("FilterMenuCustomization_Region")"  
       }  
     }  
   });  
 }  
   function FromDayFilter(element) {  
     element.kendoAutoComplete({  
       dataSource: {  
         transport: {  
           read: "@Url.Action("FilterMenuCustomization_FromDayFilter")"  
       }  
     }  
   });  
 }  
 </script>  
 @(Html.Kendo().Grid(Model)    
   .Name("Grid")  
   .Columns(columns => {  
     columns . Bound ( e => e . Id ) . Hidden ( );  
     columns . Bound ( e => e . ob_guid ) . Hidden ( );  
     columns . Bound ( e => e . ob_name ).Title("Objekt")  
           . Filterable ( filterable => filterable . UI ( "nameFilter" ) )  
         . Width ( 200 );  
     columns . Bound ( e => e . ob_code ) . Title ( "Code" );  
     columns . Bound ( e => e . von ).Title("Von");  
     columns . Bound ( e => e . FromDay ) . Title ( "Von Tag" ) . Filterable ( filterable => filterable . UI ( "FromDayFilter" ) )  
         . Width ( 200 );  
     columns . Bound ( e => e . bis ).Title("Bis");  
     columns . Bound ( e => e . ToDay ).Title("Bis tag");  
     columns . Bound ( e => e . einschrank ).Title("Einschrankung");  
         columns.Command(command => { command.Edit(); command.Destroy(); }).Width(172);    
   })  
    .Filterable(filterable => filterable  
     .Extra(false)  
     .Operators(operators => operators  
       .ForString(str => str.Clear()  
         .StartsWith("Starts with")  
         .IsEqualTo("Is equal to")  
         .IsNotEqualTo("Is not equal to")  
       ))  
     )    
   .Editable(editable => editable.Mode(GridEditMode.InLine))  
   .Pageable()  
   .Sortable()  
   .Scrollable()  
    .ColumnMenu()  
    .Selectable()  
     .Groupable()  
      .DataSource(dataSource => dataSource      
     .Ajax().PageSize(20)  
     .Events(events => events.Error("error_handler"))  
     .Model(model => model.Id(p => p.Id))  
     .Read(read => read.Action("FilterMenuCustomization_Read", "Limitations"))  
     .Update(update => update.Action("EditingInline_Update", "Limitations"))  
     .Destroy(update => update.Action("EditingInline_Destroy", "Limitations"))  
    )   
     )   

Popular posts from this blog

mvc razor textboxfor change event change another textboxfor value

WPF Crystal Report Viewer Using SAP

ASP.NET MVC razor SAP Crystal report