2011-09-20 48 views
1

我有一個帶有「創建日期」列的telerik網格。我希望這個日期是可見的,但不可編輯,所以我將它設置爲ReadOnly。然而,因爲它是隻讀的,該屬性不受我控制器的約束。 CreateDate最終爲空。我如何使它只讀,但仍然受到我的控制器綁定?如何爲Telerik Grid綁定一個只讀列

@(Html.Telerik().Grid(Model) 
.Name("MainGrid") 
.ToolBar(commands => commands.Insert()) 
    .DataKeys(keys => keys.Add(c => c.ID).RouteKey("ID")) 
.DataBinding(databinding => databinding 
    .Server() 
     .Insert("Insert", "Main") 
     .Update("Update", "Main") 
     .Delete("Delete", "Main")) 
.Columns(columns => 
{ 
    columns.Bound(o => o.Name).Width(200); 
    columns.Bound(o => o.CreatedDate).Format("{0:MMM dd, yyyy HH:mm}").ReadOnly().Width(150); 
columns.Command(commands => 
     { 
      commands.Edit(); 
      commands.Delete(); 
     }); 

回答

1

見.Editable(配置器)。這是一個網格方法,在同一水平作爲.Columns()等反而與調用.Columns(結束了),試一下加入這樣的事:

... 
    .Editable(editing => 
    { 
     var newItem = new SomeEntity 
     { 
      Name = "defaultName", 
      CreateDate = DateTime.Now, 
      OtherProperty = otherValue() 
     }; 
     editing.DefaultDataItem(newItem); 
    }); 
0

劍道MVC v 2014.1。不管列你想進入電網528

認沽..

然後在.Datasource,說這列編輯:

.DataSource(dataSource => dataSource 
    .Ajax() 
    .PageSize(20) 
    .Model(model => 
    { 
     model.Id(p => p.Id); 
     model.Field(f => f.CreatedDate).Editable(false); 
     model.Field(f => f.WhateverColumnYouHaveDefined).Editable(false); 
    } 
) 

然後將綁定,並且顯示,但無法編輯。

希望有所幫助。