Saturday, May 11, 2013

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"))  
    )   
     )   

SQL Get all Index create script from Database

To get all script from database as a create new index into another database you can use the following --Get all Index Script SELECT...