单击提交按钮时将Kendo网格行发送到服务器

时间:2014-02-17 08:36:16

标签: jquery asp.net json c#-4.0 kendo-grid

我有一个aspx页面,上面有很多html控件和一个kendo网格。我想在单击提交按钮时,Web表单上的所有数据都发送到服务器。我知道html控件的解决方案,但我无法发送并可能转换为Json我的Kendo网格?

3 个答案:

答案 0 :(得分:2)

如果网格处于编辑模式,那么您所要做的就是:

用于在网格上发送整个数据:

$.ajax({
    url: 'your URL',
    cache: false,
    type: 'POST',
    contentType: 'application/json; 
    charset=utf-8',
    data: JSON.stringify($("#GridName").data().kendoGrid._data)
});

用于在编辑模式下发送行数据:

$.ajax({
    url: 'your URL',
    cache: false,
    type: 'POST',
    contentType: 'application/json; 
    charset=utf-8',
    data: JSON.stringify($("#GridName").data("kendoGrid").dataSource.select())
});

我希望这有帮助!

答案 1 :(得分:0)

由于我不知道您的情况,我认为您可能想要执行类似的事情:

 $("#btnSave").click(function () {
                var grddatasource= = $("#GridEmployee").data("kendoGrid");
                var DTO = JSON.stringify(grddatasource);//Convert javascript object to JSON object             
                $.ajax({
                    url: 'your URL' 
                    cache: false,type: 'POST',contentType: 'application/json; charset=utf-8',data: DTO,dataType: "JSON",
                    success: function (data) {
                        alert('Created');

                    },
                    error: function (jqXHR, textStatus, err) {
                        $('#error').text('Error: ' + err);
                        alert('Error: ' + err);
                    }
                });
            }
            else {alert('Your Msg !!');}
        });

修改 您必须在kendo网格中包含以下内容才能启用弹出窗口编辑:

.Editable(editable => editable.Mode(GridEditMode.InLine))

并且你必须在Kendo Grid(谷歌搜索)中添加命令按钮,你必须添加以下内容:

.DataSource(dataSource =>
                     dataSource.Ajax()
                .Model(model =>
                {
                    model.Id(x => x.Id);
                })
                    .Read(read => read.Url("your URL").Type(HttpVerbs.Get))
                    .Create(create => create.Url("your URL").Type(HttpVerbs.Post))
                    .Update(update => update.Url("your URL").Type(HttpVerbs.Put))
                    .Destroy(destroy => destroy.Url("your URL").Type(HttpVerbs.Delete))
                )

修改 在kendogrid的工具栏上添加一个保存按钮

.ToolBar(toolbar => {
        toolbar.Save(); // add save button to grid toolbar (If you want InBuilt method)
    })

或者我认为你想分开保存网格然后使用JQuery:

 <button type="button" id="save">Save</button>

然后添加以下jQuery:

    $("#save").on("click", function () {
        $("#Segment").data("kendoGrid").saveChanges();
    });

答案 2 :(得分:0)

我认为,您始终可以从选项对象获取提交的行数据。

create : function(options) {
                            console.log("Create");
                            console.log(options.data);