未捕获的ReferenceError:在剑道网格中创建新记录时未定义CustomerContract
Uncaught ReferenceError: CustomerContract is not defined in Kendo Grid when creating new record
我正在一个asp.net mvc项目中工作,我使用一个网格填充模型。然而,当我试图在网格中创建新记录时,我遇到了一个错误,说Uncaught ReferenceError: CustomerContract is not defined
.
<script type="text/kendo" id="customerTemplate">
#if(data != null){#
#:data.Name#
#}#
</script>
<script type="text/javascript">
var customerTemplate = kendo.template($("#customerTemplate").html(), { useWithBlock: false });
</script>
@(Html.Kendo().Grid<ProjectModel>()
.Name("grid")
.Columns(columns =>
{
columns.Bound(p => p.Name);
columns.Bound(p => p.CustomerContract).ClientTemplate("#:customerTemplate(CustomerContract)#");
columns.Command(command =>
{
command.Edit();
command.Destroy();
}).Width(180);
})
.ToolBar(toolbar => toolbar.Create())
.Editable(editable => editable.Mode(GridEditMode.PopUp).TemplateName("ProjectPopUpTemplate"))
.Pageable()
.Sortable()
.Scrollable()
.HtmlAttributes(new {style = "height:500px;"})
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(10)
.Events(events => events.Error("error_handler"))
.Model(model => { model.Id(p => p.Id); })
.Create(update => update.Action("EditingPopup_Create", "ProjectManagement"))
.Read(read => read.Action("EditingPopup_Read", "ProjectManagement"))
.Update(update => update.Action("EditingPopup_Update", "ProjectManagement"))
.Destroy(destroy => destroy.Action("EditingPopup_Destroy", "ProjectManagement"))
)
)
如果我选择不使用CustomerContract列上的模板(单元格值将仅为[object object]),当单击网格中的"添加新记录"按钮时,弹出窗口正在工作。
这是我的read方法:
public ActionResult EditingPopup_Read([DataSourceRequest] DataSourceRequest request)
{
ProjectContract[] list = ProjectService.GetProjects();
return Json(list.ToDataSourceResult(request));
}
其中ProjectContract包含CustomerContract作为属性。
模型:
public class ProjectModel
{
private ProjectContract _projectContract;
public ProjectModel(ProjectContract projectContract)
{
ProjectContract = projectContract;
}
public ProjectModel()
{
}
public CustomerServiceClient CustomerService { get; set; }
private ProjectContract ProjectContract
{
get
{
if (_projectContract == null)
{
_projectContract = new ProjectContract();
}
return _projectContract;
}
set { _projectContract = value; }
}
[Display(Name = "Customer")]
public CustomerContract CustomerContract
{
get
{
if (ProjectContract.CustomerContract == null)
{
return new CustomerContract();
}
return ProjectContract.CustomerContract;
}
set { ProjectContract.CustomerContract = value; }
}
[Display(Name = "Customers")]
public List<Customer> Customers { get; set; }
[ScaffoldColumn(false)]
public int Id
{
get { return ProjectContract.Id; }
set { ProjectContract.Id = value; }
}
[Display(Name = "Project Name")]
public string Name
{
get { return ProjectContract.Name; }
set { ProjectContract.Name = value; }
}
}
我希望有人能给我指出正确的方向,这里发生了什么,为什么我不能添加一个新的记录。
在网格的模型部分。为新客户契约添加一个字段,并像这样初始化新客户契约:
Model(model => {
model.Id(p => p.id);
model.Field(p => p.CustomerContract).default(new CustomerContract());
}
这应该能解决你的问题。如果你需要一个更完整的例子,我可以在我的电脑上做一个。
相关文章:
- Kinetic.js–创建网格
- Three.js:我可以创建网格来替换很多对象吗
- 如何在Meteor.js中使用车把创建网格系统
- 角度.js ng 重复用于创建网格
- 使用 Knockoutjs 创建网格
- 使用 geometry.vertices 和 geometry.faces 从 .obj 文件创建网格
- 如何在 angularjs 中使用 ui-grid 为多个表动态创建网格选项
- 从 2 个特定元素创建网格
- jQuery UI,捕捉到网格示例,创建网格线
- 用JavaScript创建网格容器
- 如何在C#/Razar/KendoUI中使用嵌套的DropDownList创建网格
- 使用Handlebars.js创建网格的简单方法
- KineticJs:为拼图创建网格线
- 在Twitter引导程序中创建网格跨度之间的空间
- 为我的页面创建网格外观的最有效的方法
- JavaScript循环在画布上创建网格
- 如何在地图的查看区域中创建网格
- 用CSS在HTML中创建网格的最有效的方法
- 想要使用javascript和html在web应用程序中创建网格视图
- 有人能给我解释一下这个用JS/jQuery创建网格的功能吗