我有一个带有“创建日期”列的telerik网格。我希望此日期可见,但不可编辑,因此我将其设置为ReadOnly。但是因为它是只读的,所以属性不受我的控制器约束; CreateDate最终为null。我怎样才能使它成为只读但仍然被我的控制器绑定?
即
@(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();
});
答案 0 :(得分:1)
请参阅.Editable(配置器)。这是一个网格方法,在与.Columns()等相同的级别上使用,而不是以.Columns()的调用结束,尝试添加如下内容:
...
.Editable(editing =>
{
var newItem = new SomeEntity
{
Name = "defaultName",
CreateDate = DateTime.Now,
OtherProperty = otherValue()
};
editing.DefaultDataItem(newItem);
});
答案 1 :(得分:0)
Kendo 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);
}
)
然后它将绑定并显示,但不能编辑。
希望有所帮助。