2014-02-17 39 views
2

我有一個aspx頁面,它有很多html控件和一個kendo網格。我希望當提交按鈕被點擊時,Web表單上的所有數據都會發送到服務器。我知道的HTML控件的解決方案,但我不能發送,並可能轉換爲JSON我的劍道網格?點擊提交按鈕發送Kendo網格行到服務器

回答

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()) 
}); 

我希望這有助於!

+0

完美。你救了我的一天。非常感謝。 – sosha

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 !!');} 
     }); 

編輯 你必須包括在劍道網格下面用於啓用彈出編輯:

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

,你必須在劍道網格(谷歌搜索)添加命令按鈕,你必須添加以下內容:

.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(); 
    }); 
+0

感謝您的回答。我嘗試了它,並將其發送到服務器端。但我怎樣才能在服務器端的網格數據,並將其保存在數據庫中? – sosha

+0

我想你想保存網格的行不是整個網格..如果是的話,請參閱我的編輯 –

+0

我很感激。但是我想在點擊提交按鈕時保存網格。我需要通過一次點擊來保存表格上的所有行和其他數據()。網格不綁定到任何數據源,數據只在客戶端。 – sosha

0

我想,你總是可以從選項對象中獲取提交的行數據。

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