如何为teleerik网格绑定只读列



我有一个包含列"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);
    }
)

然后它将被绑定并显示,但不可编辑。

希望对你有帮助。

最新更新