在kendo网格中追加新行时,我的先前数据被清除

时间:2015-03-12 09:43:03

标签: jquery asp.net-mvc-4 jquery-ui kendo-ui kendo-grid

在我的项目中,我动态地向kendo网格添加新行。我将数据输入到该行。但是在向网格添加新行时,输入的数据将被清除。我正在尝试添加批量创建记录。 在这里,我在所有列中使用了kendo小部件。我的代码是

@(Html.Kendo().Grid<POC_Grid.TblProductDetails>()
    .Name("Grid")
    .Columns(column =>
    {
        //column.Template(m => m.Id);
        column.Template(m => m.Item).HtmlAttributes(new { @class = "templateCell" }).ClientTemplate(Html.Kendo().AutoComplete()
                    .Name("Item#=uid#")
                    .DataTextField("Item")
                    .Filter("startswith")
                    .MinLength(1)
                    .HtmlAttributes(new { style = "width:250px", @class = "templateCell" })
                    .DataSource(source =>
                    {
                        source.Read(read =>
                        {
                            read.Action("getFilteredData", "Grid")
                            .Data("filterDataByText");
                        })
                        .ServerFiltering(true);
                    })

                    .ToClientTemplate().ToHtmlString());

        column.Template(m => m.Units).HtmlAttributes(new { @class = "templateCell" }).ClientTemplate(Html.Kendo().NumericTextBox<decimal>()
                    .Name("Units#=uid#")
                    .Format("c")
                    .Min(0)
                    .Max(100)
                    .HtmlAttributes(new { @class = "templateCell" })
                    .ToClientTemplate().ToHtmlString());
        column.Template(m => m.SingleUnitPrice).HtmlAttributes(new { @class = "templateCell" }).ClientTemplate(Html.Kendo().NumericTextBox<decimal>()
                    .Name("SingleUnitPrice#=uid#")
                    .Format("c")
                    .Min(0)
                    .Max(100)
                    .HtmlAttributes(new { @class = "templateCell" })
                    .ToClientTemplate().ToHtmlString());
        column.Template(m => m.Total).HtmlAttributes(new { @class = "templateCell" }).ClientTemplate(Html.Kendo().NumericTextBox<decimal>()
                    .Name("Total#=uid#")
                    .Min(0)
                    .Max(100)
                    //.HtmlAttributes(new { @readonly = "readonly" })
                    .HtmlAttributes(new { @class = "templateCell",@title="total" })
                    .ToClientTemplate().ToHtmlString());
    })
                .Events(ev => ev.DataBound("templateScript")
            )

        .ToolBar(toolbar =>
        {
            toolbar.Create().Text("+");
            toolbar.Save();
        })
        .Editable(m => m.Mode(GridEditMode.InCell))
        .Pageable(p=>p.Refresh(false))
        .Sortable()
        .Scrollable()
        .Selectable()
        .HtmlAttributes(new { style = "height:430px;" })
        .DataSource(dataSource => dataSource
            .Ajax()
            .Batch(true)
            .Model(model =>
            {
                model.Id(p => p.Id);
            })
            .PageSize(20)
            //.Model(m => { m.Id(c => c.Id); })
                .Create(create => create.Action("Grid_Create", "Grid"))
                .Update(update => update.Action("Grid_Update", "Grid"))
                //.Read(read => read.Action("Grid_Read", "Grid"))
)

<script>
function templateScript(e) {
    $(".templateCell").each(function () {
        eval($(this).children("script").html());
    });
}
</script> 

添加我使用的新行

var grid = $("#Grid").data("kendoGrid");
grid.addRow()

在追加新行后,现有的行数据被清除。我认为这些是由于数据源被清除而发生的.Plz告诉一些建议来克服这些问题。在追加新行时,现有的行数据无法清除。如果我试图添加批量保存到数据库。它只保存空值。我试了这么多个小时。我无法得到正确的解决方案。

0 个答案:

没有答案