如何在不使用KendoGrid工具栏的情况下在kendo网格中保存数据?

时间:2015-11-14 23:54:11

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

我为测试设置的网格是这个

function TestCatalogDefaultsGrid() {
    $("#testCatalogDefaultGrid").kendoGrid({
        columns: [{
            field: "Catalog",
            template: '<select class="form-control" ><option>Select A</option><option>Select B</option></select>',
            title: "Catalog"
        },
        {
            field: "Multiplier",
            title: "Multiplier"
        },
        {
            field: "Markup",
            title: "Markup"
        },
        {
            field: "AccountNumber",
            title: "Account Number"
        },
        {
            field: "UOM",
            title: "UOM"
        }],
        editable: true,
        batch: true,
        dataSource: {
            data: [{
                Catalog: "",
            },
            {
                Catalog: "",
            }
            ]
        }
    });
}

我还有一个用于保存的按钮,当我点击时我想将所有列中的值保存到数据库中,我有一个JavaScript对象,它将保存数据,直到我单击Save按钮,JavaScript对象如下:

    function DataHold() {
    var dataToDatabase = {
    Catalog: "Catalog",
    Multiplier: "Multiplier",
    Markup: "Markup",
    AccountNumber: "AccountNumber",
    UOM: "UOM"
    }
    return dataToDatabase;
}

这是我的clickevent,我想要获取数据以及我将发布数据的位置

    $("#btnTestSaveCatalogDefaults").click(function () {
        var myData = DataHold();
    });

我在Kendo论坛上四处寻找并且没有发现任何与我正在做的事情有关的事情,如果这是一个重复的问题,那么有人请指导我。

1 个答案:

答案 0 :(得分:0)

您可以尝试以下方法:

在您的视图中定义:

@using (Html.BeginForm("YourMethod", "Your controller", FormMethod.Post))
{
    <input type="hidden" id="yourData" name="requests" /> 
    @Html.Button("Post data", new { id = "post-data" })
}

在网格初始化中:

dataSource: {
                    data: ...,
                    schema:....,                    
                    change: function () { $("#yourData").val(kendo.stringify(this.data().toJSON())); }
                },

在您的控制器中:

 public ActionResult SubmitPriceChangeTask(string data)
 {
  .........parse your data
 }