1

我有一个实体文件:

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 内联编辑模式。现在我想让属性string SourceLink可编辑,具体取决于bool IsFile. 这意味着SourceLinkif 应该是可编辑的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(...)
    //...
)

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

4

1 回答 1

0

听起来你决定走不同的方向。您可能会考虑为该列使用一个模板,该模板要么禁用该字段,要么将其写为基于IsFile. 否则,我认为您无法使用当前的解决方法,因为可编辑性是在数据源上设置的,而不是在行级别。

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

于 2013-08-01T18:26:36.103 回答