Kendo Grid编辑InLine model.Field(o => o.Property).Editable()取决于其他属性

时间:2013-06-26 07:53:32

标签: asp.net-mvc razor kendo-ui kendo-grid kendo-asp.net-mvc

我有一个实体文件:

public class Document : EntityBase
{
    public Guid ID { get; set; }
    public string Description { get; set; }
    public string SourceLink{ get; set; }
    public bool IsFile { get; set; }
}

我正在使用Kendo Grid InLine编辑模式。 现在,我想根据string SourceLink修改属性bool IsFile。 这意味着SourceLink可以编辑IsFile==false

_documentsView.cshtml:

.DataSource(dataSource => dataSource
    .Ajax()
    .Events(events => events.Error("error"))
    .Model(model =>
            {
                model.Id(o => o.ID);
                model.Field(o => o.SourceLink).DefaultValue("");
                model.Field(o => o.Description).DefaultValue("");

                if (model.Field(o => o.IsFile) == true) { 
                    model.Field(o => o.SourceLink).Editable(false)
                }
                else
                {
                    model.Field(o => o.SourceLink).Editable(true)
                }
             }
    )
    //.Create(update => update.Action("GridEditingInlineCreate", "Document", new { area = "" }))
    //.Read(...)
    //...
)

是否有可能在.Model语句中使用此if语句? 或者通常可以使用这种依赖可编辑的功能? 也许以另一种方式?

1 个答案:

答案 0 :(得分:0)

听起来你决定走另一个方向。您可以考虑使用该列的模板来禁用该字段,或者将其作为基于IsFile的标签写入。否则,我认为您坚持使用当前的解决方法,因为可编辑性是在数据源上设置的,而不是在行级别上。

另一个考虑因素 - 您可以使用共享编辑器模板来编写标签而不是编辑器......