剑道网格:未捕获的参考错误:未定义单位

Posted

技术标签:

【中文标题】剑道网格:未捕获的参考错误:未定义单位【英文标题】:Kendo grid : Uncaught ReferenceError: Unit is not defined 【发布时间】:2019-09-23 20:58:53 【问题描述】:

我创建了一个以类为模型的剑道网格。 对于一列,我设置了一个 ClientTemplate 从链接到我的类的复杂对象中获取属性。它工作得很好,我可以看到我的列中包含正确的数据。 但是当我尝试在我的网格中创建一个新行时,我收到了这个错误:

`Uncaught ReferenceError: Unit is not defined
at eval (eval at compile (kendo.all.js:194), <anonymous>:3:271)
at init._rowshtml (kendo.all.js:56572)
at init._renderContent (kendo.all.js:57216)
at init.refresh (kendo.all.js:57066)
at init.proxy (jquery.js:492)
at init.trigger (kendo.all.js:124)
at init._process (kendo.all.js:7271)
at init._change (kendo.all.js:7231)
at init.proxy (jquery.js:492)
at init.trigger (kendo.all.js:124)`

我的网格列是这样定义的:

.Columns(columns =>
            
                columns.Bound(p => p.Id);
                columns.Bound(p => p.Unit.Name).ClientTemplate(("#=Unit ? Unit.Name: ''#")).Title(Global.Unit);
                columns.Command(command =>  command.Edit(); command.Destroy(); );
            )

所以在我的网格中,当有一个单元链接到我的项目时,它会在列中显示单元的名称。这部分有效。 但我无法创建新行,我也不知道为什么。

提前感谢您的帮助

【问题讨论】:

【参考方案1】:

我找到了该怎么做,如果它可以帮助某人:

在网格参数上,在模型部分,只需在字段中添加一个默认值:

.Model(model => 
                    model.Id(p => p.Id);
                    model.Field(p => p.Unit).DefaultValue(new Unit());
                )

【讨论】:

以上是关于剑道网格:未捕获的参考错误:未定义单位的主要内容,如果未能解决你的问题,请参考以下文章

在 Javascript 中填充剑道 ui 网格

网格存储配置抛出“未捕获的类型错误:无法读取未定义的属性‘缓冲’”

无法读取剑道网格中未定义的属性“最近”

未捕获的类型错误:无法读取 JQuery DataTable 未定义的属性“mData”

main.js:2未捕获的参考错误:未定义firebase [重复]

剑道刷新(DropDownList.refresh())不起作用错误未定义