asp.net-mvc - Telerik MVC Grid - 如何添加新记录?
问题描述
我有一个 Telerik Kendo Grid,当我单击一个按钮时,我正在添加一条记录:
var dataSource = $("#GridArticulos").data("kendoGrid").dataSource;
dataSource.add({ ArticuloId: articuloId, Nombre: nombre, Precio:
precio, Cantidad: cantidad, Total: total });
dataSource.sync();
记录已正确添加到网格中,但是当我单击网格上的保存按钮时,什么也没有发生,控制器中的操作没有被调用,我需要在网格上进行一些特定的配置吗?,这就是我现在所拥有的:
@(Html.Kendo().Grid<App.Models.ArticulosListaViewModel>()
.Name("GridArticulos")
.AutoBind(false)
.Columns(columns =>
{
columns.Bound(c => c.ArticuloId).Width("15%");
columns.Bound(c => c.Nombre).Width("35%").ClientFooterTemplate("Total"); ;
columns.Bound(c => c.Cantidad).Width("10%").HtmlAttributes(new { style = "text-align:right" });
columns.Bound(c => c.Precio).Width("10%").Format("{0:C}").HtmlAttributes(new { style = "text-align:right" });
columns.Bound(c => c.Total).Width("10%").Format("{0:C}").HtmlAttributes(new { style = "text-align:right" })
.ClientFooterTemplate("<div align=\"right\">#=kendo.format('{0:C}', sum)#</div>");
columns.Command(command => command.Destroy()).Width("20%");
})
.Editable(editable => editable.Mode(GridEditMode.InCell))
.ToolBar(toolbar =>
{
toolbar.Save().SaveText("Crear pedido").CancelText("Cancelar");
})
.Selectable(s => s.Mode(GridSelectionMode.Single).Type(GridSelectionType.Cell))
.Scrollable()
.Resizable(resize => resize.Columns(true))
.HtmlAttributes(new { style = "height:550px", @class = "ra-section" })
.DataSource(dataSource => dataSource
.Ajax()
.Aggregates(aggregates =>
{
aggregates.Add(p => p.Total).Sum();
})
.Batch(true)
.ServerOperation(false)
.Events(events => events.Error("GridArticulos_Error").RequestEnd("GridArticulos_RequestEnd"))
.Model(model =>
{
model.Id(a => a.ArticuloId);
model.Field(a => a.Nombre).Editable(false);
model.Field(a => a.Cantidad).Editable(false);
model.Field(a => a.Precio).Editable(false);
model.Field(a => a.Total).Editable(false);
})
//.Create(create => create.Action("GuardarPedido", "Pedidos").Data("ObtenerDatos"))
.Update(update => update.Action("GuardarPedido", "Pedidos").Data("ObtenerDatos"))
.Destroy(d => d.Action("EliminarArticulo", "Pedidos"))
)
)
解决方案
您已将 .Create() 方法注释掉。取消注释并将其指向适当的控制器方法,你应该没问题
取消注释这一行--> //.Create(create => create.Action("GuardarPedido", "Pedidos").Data("ObtenerDatos")) .Update(update => update.Action("GuardarPedido", "Pedidos ").Data("ObtenerDatos")) .Destroy(d => d.Action("ElimnarArticulo", "Pedidos"))
此外,您的 create 方法指向的方法与其下一行的 update 方法相同,因此您需要编辑该方法以指向另一个方法。我无能为力,因为我不知道您的控制器中有哪些方法
推荐阅读
- ffmpeg - ffmpeg 如何将标头信息添加到 pcm 中?
- azure - Azure 架构实施思路
- admob - 如何在 google admob 中链接/更改已链接的应用程序?
- git - 如何在 Eclipse 中克隆 git 私有存储库?
- html - 我需要删除这个 wp-block-library-css (Gutenberg CSS) 吗?
- python - 详细视图 Django 上的 FormMixin
- kubernetes - 在 PV/PVC 中引用存储类之前,是否需要在 Kubernetes 中创建存储类?
- crystal-reports - 如何在 Crystal Report 的详细信息部分中仅创建一个列标题
- python - 使用 time.sleep 时 Python 多处理不起作用
- android - 如何在域层中获取字符串资源