Kendo Grid - 在MVC Controller中只能更新已编辑的行

时间:2016-03-16 10:26:06

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

在我的应用程序中,我使用的是Kendo网格,我的代码如下。

@(Html.Kendo().Grid<nVisionGlobal.Application.Pricing.Models.FuelIndex>()
    .Name("FuelGrid")
    .Columns(columns =>
    {
        columns.Bound(p => p.FSCIndexID).Width(50).Sortable(false).ClientTemplate("<input class='check_row' type='checkbox'  data-clno = #= FSCIndexID # ></input>")
        .HeaderTemplate("<input id='check_all' type='checkbox'  > </input>");
        columns.Bound(p => p.EffectiveDate).Title("Effective From").Format("{0:dd-MMM-yyyy}").Width(150);
        columns.Bound(p => p.NationalUsAvg).Title("US Average");
        columns.Bound(p => p.EastCoast).Title("East Coast");
        columns.Bound(p => p.NewEngland).Title("New England");
        columns.Bound(p => p.CentralAtlantic).Title("Central Atlantic");
        columns.Bound(p => p.LowerAtlantic).Title("Lower Atlantic");
        columns.Bound(p => p.Midwest).Title("Midwest");
        columns.Bound(p => p.GulfCoast).Title("Gulf Coast");
        columns.Bound(p => p.RockyMtn).Title("Rocky Mountain");
        columns.Bound(p => p.WestCoast).Title("West Coast");
        columns.Bound(p => p.California).Title("California");
        columns.Command(commands =>
        {
            commands.Destroy();
        }).Title("Commands").Width(200);
    })
    .AutoBind(false)
    .ToolBar(toolbar =>
    {
        toolbar.Create();
        toolbar.Save(); 
    })
        .Editable(editable => editable.Mode(GridEditMode.InCell))
        .Navigatable()
        .DataSource(dataSource => dataSource
        .Ajax()
        .Batch(true)
        .Model(model =>
        {
            model.Id(m => m.FSCIndexID);
            model.Field(m => m.FSCIndexID).Editable(false);
            model.Field(m => m.EffectiveDate).Editable(true);
        })
        .Create(create => create.Action("Inline_Create", "Fuel"))
        .Read(p => p.Action("FuelSearch", "Fuel").Type(HttpVerbs.Get).Data("FuelSearchInfo"))
        .Update("Inline_Update", "Fuel")
        .Destroy(destroy => destroy.Action("#", "Fuel"))
    )
    .Pageable()
)

从上面的代码可以看出,单元格是可编辑的(GridEditMode.InCell)。我有一个按钮控件来保存数据。当我单击按钮时,只有行中的编辑数据(多行编辑)将传递给控制器​​。

我已经编写了以下jQuery来捕获已编辑的行。

<script>
if ($(this).attr("href") === "Save" || $(this).attr("href") === "Update") {
            //alert('Ok')
            e.preventDefault();
            debugger;
            $.ajax({
                url: "Inline_Create/Fuel",
                cache: false,
                type: "POST",
                contentType: "application/json",
               // charset='utf-8',
                data: JSON.stringify($("#FuelGrid").data("kendoGrid").dataSource.select())
        });
</script>

但代码无效。

0 个答案:

没有答案