我有一个包含列"Created Date"的teleerik网格。我希望这个日期是可见的,但不能编辑,所以我将其设置为只读。然而,因为它是只读的,属性没有在我的控制器中绑定;CreateDate最终为null。我怎么能使它只读,但仍然绑定在我的控制器上?
ie@(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();
});
参见. editable (configurator)。这是一个网格方法,与. columns()等在同一级别上使用。与其以调用.Columns()结束,不如尝试添加如下内容:
...
.Editable(editing =>
{
var newItem = new SomeEntity
{
Name = "defaultName",
CreateDate = DateTime.Now,
OtherProperty = otherValue()
};
editing.DefaultDataItem(newItem);
});
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);
}
)
然后它将被绑定并显示,但不可编辑。
希望对你有帮助。