gpt4 book ai didi

kendo-ui - Kendo网格创建后不更新ID

转载 作者:行者123 更新时间:2023-12-02 19:04:52 26 4
gpt4 key购买 nike

我的网格可以进行所有增删改查操作,唯一的问题是在我保存新记录后,网格不会从 Controller 更新为新 ID。我已经验证 ID 是从 Controller 与模型一起发送回的,但网格没有更新。因此,在不刷新页面的情况下对同一记录进行的任何后续更改都会创建一个新记录。

Controller :

        [AcceptVerbs(HttpVerbs.Post)]
public ActionResult AddHoleToJob([DataSourceRequest] DataSourceRequest request, PlannedHolesVM viewModel)
{
_jobInfoService.AddHole(viewModel);
return Json(viewModel, JsonRequestBehavior.AllowGet);
}

Cshtml:

@(Html.Kendo().Grid<PlannedHolesVM>()
.Name("PlannedHolesKendoGrid")
.Editable(e => e.Mode(GridEditMode.PopUp).TemplateName("HoleDetails"))
.Columns(c =>
{
c.Bound(m => m.ID);
c.Bound(m => m.HoleSectionLookupName);
c.Bound(m => m.HoleSectionTypeLookupHoleSectionType);
c.Bound(m => m.HoleSize);
c.Command(command =>
{
command.Edit();
command.Destroy();
});
})
.ClientDetailTemplateId("template")
.ToolBar(toolbar => toolbar.Create().Text("Add Hole"))
.DataSource(ds => ds
.Ajax()
.Model(model =>
{
model.Id(c => c.ID);
model.Field(c => c.JobID);
model.Field(c => c.JobID).DefaultValue(ViewBag.Jobid);
model.Field(c => c.HoleSectionID);
model.Field(c => c.HoleSectionTypeID);
})
.Read(read => read.Action("PlannedHolesGridData", "JobRecord", new { jobid = ViewBag.Jobid }))
.Destroy(delete => delete.Action("DeleteHoleFromJob", "JobRecord"))
.Create(create => create.Action("AddHoleToJob", "JobRecord"))
.Update(update => update.Action("AddHoleToJob", "JobRecord"))
)
.Events(e =>
{
e.DataBound("dataBound");
e.Save("refreshOnSave");
})
)

如何让网格更新新的 ID,而不调用 read 并返回数据库?

最佳答案

在浏览了几篇类似的帖子并找到 Telerik 帖子后,该帖子解释了使用 razor 时预定义的架构,并期望数据如下所示:

{
"Data": [{
"ProductID": 1,
"ProductName": "Chai8",
"UnitPrice": 18.00,
"UnitsInStock": 39,
"Discontinued": false
}, {
"ProductID": 2,
"ProductName": "Chang",
"UnitPrice": 19.00,
"UnitsInStock": 17,
"Discontinued": false
}],
"Total": 2,
"AggregateResults": null,
"Errors": null
}

我能够修改我的 Controller 以按照预期的方式返回 Json,并且网格会更新 ID。这是 Controller 代码:

        [AcceptVerbs(HttpVerbs.Post)]
public ActionResult AddHoleToJob([DataSourceRequest] DataSourceRequest request, PlannedHolesVM viewModel)
{
_jobInfoService.AddHole(viewModel);
return Json(new { Data = viewModel });
}

注意大写的“D”。

关于kendo-ui - Kendo网格创建后不更新ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26428583/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com