我正在使用带有ASP.NET MVC助手的Kendo UI Grid和自动生成的列。
我的视图模型中有[DefaultValue(60 * 60)]
注释,但剑道助手似乎并不尊重它。
我是否可以指定默认值(可能包含数据注释)而无需手动描述列?
答案 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。