新插入的行不会显示在网格中

时间:2013-11-13 01:52:54

标签: asp.net-mvc asp.net-mvc-3 kendo-ui kendo-grid

我使用PopUp在kendo Grid中插入新行,我也可以将数据保存到数据库中。但是当我在服务器端插入数据后,当我回到我的View页面时,我的新行中出现了空白值。

我在视图中的kendo Grid是::

<div class="span10">
        @(Html.Kendo().Grid<Invoice.Models.ViewModels.ReferenceViewModel>()
    .Name("Reference")
            .TableHtmlAttributes(new { style = "height:20px; " })
                //.TableHtmlAttributes(new { style:"height:30px;"})
    .Columns(columns =>
    {
        columns.Bound(p => p.Reference).Width(15);
        columns.Bound(p => p.Description).Width(15);
        columns.Bound(p => p.Value).Width(7);
        columns.Command(command => { command.Edit().Text(" "); command.Destroy().Text(" "); }).Width(13);
    })
                .Editable(ed => ed.Mode(GridEditMode.PopUp).TemplateName("NewReference"))
    .Navigatable()
    .Sortable()
    .Scrollable(scr => scr.Height(200))
    .Scrollable()
    .DataSource(dataSource => dataSource
        .Ajax()
        .Batch(true)
        .ServerOperation(false)
        .Events(events => events.Error("error_handler"))
        .Model(model => model.Id(p => p.Reference))
        .Create("Reference_Create", "Document")
        .Read("Reference_Read", "Document")
        .Update("Reference_Update", "Document")
        .Destroy("Reference_Destroy", "Document")
    )
        )
    </div>
<button type="button" class="k-button k-grid-Add" id="AddSingleReference"> <span class="k-icon k-add"></span></button><br />

,服务器端的代码为::

[AcceptVerbs(HttpVerbs.Post)]
        public ActionResult Reference_Create([DataSourceRequest] DataSourceRequest request, ReferenceViewModel Reference)
        {

                if (Reference != null && ModelState.IsValid)
                {

                    string ReferenceName = System.Web.HttpContext.Current.Request.Form["models[0].Reference"].ToString();
                    string Description = System.Web.HttpContext.Current.Request.Form["models[0].Description"].ToString();

                    var reference = new CustomerReference { ReferenceName = ReferenceName, Description = Description, CustomerID = 2, CompanyID = 2, ReferenceCode="Ref_Code" };
                    db.CustomerReferences.Add(reference);
                    db.SaveChanges();

                }

                return Json(new[] { Reference }.ToDataSourceResult(request, ModelState));
            }

将新值插入数据库但是如何在插入后在Kendo Grid中显示这些值。 现在新的插入后,剑道网格显示空格。\请帮助我。

1 个答案:

答案 0 :(得分:0)

您应该在响应中返回Updated对象,而不是从客户端实际发送的对象。

e.g。

return Json(new[] { reference }.ToDataSourceResult(request, ModelState));