Как привязать колонку только для чтения к Telerik Grid - PullRequest
1 голос
/ 20 сентября 2011

У меня есть сетка телерика с колонкой «Дата создания».Я хочу, чтобы эта дата была видимой, но не редактируемой, поэтому я установил ее на ReadOnly.Однако, поскольку оно доступно только для чтения, свойство не связано в моем контроллере;CreateDate заканчивается нулевым.Как я могу сделать его доступным только для чтения, но все еще привязанным к моему контроллеру?

т.е.

@(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();
        });

Ответы [ 2 ]

1 голос
/ 05 апреля 2012

См. Редактируемый (конфигуратор). Это метод сетки, используемый на том же уровне, что и .Columns () и т. Д. Вместо завершения вызова .Columns (), попробуйте добавить что-то вроде этого:

    ...
    .Editable(editing =>
    {
        var newItem = new SomeEntity
        {
            Name = "defaultName",
            CreateDate = DateTime.Now,
            OtherProperty = otherValue()
        };
        editing.DefaultDataItem(newItem);
    });
0 голосов
/ 19 июля 2014

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);
    }
)

Тогда он будет связываться и отображаться, но не будет редактируемым.

Надеюсь, это поможет.

...