我有一个可编辑的Kendo UI网格并带有自定义编辑器。每当我尝试单击自定义编辑器的文本框(这是当剑道是设置值到网格模型)之外,我得到一个JavaScript错误这样的:使用自定义编辑器绑定网格子模型
0x800a138f - JavaScript runtime error: Unable to set property 'PercentWeight' of undefined or null reference
在调试程序时,例外情况:
function anonymous(d,value) {
d.PercentInfo.PercentWeight=value
}
当我将鼠标悬停在d
,它除了PercentInfo
我所有的IngredientViewModel
特性,当我将鼠标悬停在PercentInfo
,它是undefined
。
这里是我的网格模型:
public class IngredientViewModel {
public string EncryptedIngredientId { get; set; }
public string CasNumber { get; set; }
public string IngredientName { get; set; }
[UIHint("PercentWeightEditor")]
public PercentInfoViewModel PercentInfo { get; set; }
}
这里是IngredientViewModel
使用的PercentInfoViewModel
型号:
public class PercentInfoViewModel {
public decimal? PercentWeight { get; set; }
public string PercentUnit { get; set; }
}
这里是电网部分的.cshtml:
@(Html.Kendo().Grid<IngredientViewModel>(Model)
.Name("IngredientsGrid")
.Editable(editable => editable.Mode(GridEditMode.InLine).Enabled(true))
.BindTo(Model)
.DataSource(ds => ds
.Ajax()
.ServerOperation(false)
.Events(ev => ev.Error("onGridError"))
.Model(m => {
m.Id(p => p.EncryptedIngredientId);
m.Field(p => p.EncryptedIngredientId).Editable(false);
m.Field(p => p.PercentInfo);
})
.Read("IngGrid_Read", "Company")
.Update("IngGrid_Update", "Company")
.Create("IngGrid_Create", "Company")
.Destroy("IngGrid_Destroy", "Company"))
.ToolBar(tbar => tbar.Create())
.Columns(c => {
c.Bound(m => m.CasNumber);
c.Bound(m => m.IngredientName);
c.Bound(m => m.PercentInfo).ClientTemplate("#= PercentInfo.PercentWeight # #= PercentInfo.PercentUnit #");
c.Command(command => {
command.Edit();
command.Destroy();
}).Width(200);
})
)
这里是PercentWeightEditor .cshtml:
@model SupplierPortalWebsite.Models.PercentInfoViewModel
@Html.TextBoxFor(m => m.PercentWeight)
@Html.TextBoxFor(m => m.PercentUnit)
我在做什么错?