【问题标题】:KendoUI Grid Default Value with Data Annotation带有数据注释的 KendoUI 网格默认值
【发布时间】:2014-12-27 18:54:21
【问题描述】:

我将 Kendo UI Grid 与 ASP.NET MVC Helpers 和自动生成的列一起使用。

我的视图模型中有[DefaultValue(60 * 60)] 注释,但剑道助手似乎不尊重这一点。

我可以指定默认值(可能带有数据注释)而不必手动描述列吗?

【问题讨论】:

  • 确保绑定以正确的方式工作,并且您已在配置中打开自动绑定。
  • 一切都正确绑定并且自动绑定开启(显式)
  • 您也可以使用默认构造函数来满足您的目的。看来您正在处理剑道表,因此您可以为 inline_read 操作准备数据:)
  • 你在帮助器中设置ModelMetadata吗?

标签: asp.net-mvc kendo-ui kendo-grid data-annotations kendo-asp.net-mvc


【解决方案1】:

如果您手动定义了网格中的列,则无论您是否在注释中定义了默认值,都需要像这样设置默认值

 @(Html.Kendo()
      .Grid()
      .DataSource( d=> d.Ajax()
                        .Model(m=>{
                            m.Field(f=>f.YourField).DefaultValue(YourValue);
                 }))
)

所以对于自动生成的列,您可以尝试以下方法

@(Html.Kendo()
      .Grid()
      .Events( e => e.Edit("onEdit"))
)

<script type="text/javascript">
      function onEdit(e) {   
           //check if record is new
           if (e.model.isNew()) {
                // set the value of the model property like this                    
                e.model.set("PropertyName", Value);
                // for setting all fields, you can loop on 
                // the grid columns names and set the field
           }
    }
</script>

希望对你有帮助

【讨论】:

    【解决方案2】:

    对于默认值,我喜欢使用我认为 Kendo 应该新建模型实例的构造函数,这样就可以了。

    查看模式

    public class ViewModel
    {
    
        public string Name { get; set; }
    
        public ViewModel()
        {
            Name = "First name";
        }
    
    }
    

    编辑

    在他们的文档中进行了一些搜索后,似乎不支持数据注释或构造函数默认值,您必须在网格定义中定义默认值。请参阅http://docs.telerik.com/kendo-ui/aspnet-mvc/helpers/grid/faq#how-do-i-specify-default-property-values-when-a-new-item-is-created 了解更多信息。

    【讨论】:

    • 用新信息更新了答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-01
    • 1970-01-01
    • 2017-03-11
    • 2018-05-26
    • 2017-11-19
    相关资源
    最近更新 更多