【问题标题】:How to Bind a readonly Column for Telerik Grid如何为 Telerik Grid 绑定只读列
【发布时间】:2011-09-20 18:14:57
【问题描述】:

我有一个带有“创建日期”列的 Telerik 网格。我希望此日期可见,但不可编辑,因此我将其设置为只读。但是,由于它是只读的,因此该属性未绑定在我的控制器中; 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();
        });

【问题讨论】:

    标签: asp.net-mvc telerik telerik-grid readonly


    【解决方案1】:

    参见 .Editable(配置器)。这是一个网格方法,与 .Columns() 等在同一级别上使用。不要以调用 .Columns() 结束,而是尝试添加如下内容:

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

    【讨论】:

      【解决方案2】:

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

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

      希望对您有所帮助。

      【讨论】:

        猜你喜欢
        • 2014-12-10
        • 2012-02-24
        • 2012-08-05
        • 2012-07-25
        • 2019-07-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多