具有数据注释的KendoUI网格默认值

时间:2014-12-27 18:54:21

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

我正在使用带有ASP.NET MVC助手的Kendo UI Grid和自动生成的列。

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

我是否可以指定默认值(可能包含数据注释)而无需手动描述列?

2 个答案:

答案 0 :(得分:5)

如果您手动定义网格中的列,则需要设置默认值,尽管您在注释中定义了默认值

 @(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>

希望这会对你有所帮助

答案 1 :(得分: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