Asp.net-Mvc
在表單送出上發布劍道網格數據
我想將數據從 Kendo Grid 發佈到伺服器,並將其保存到數據庫中。
為此,我使用瞭如下形式:
@using (Html.BeginForm("MainDocumentSave","Document")) { <div class="row-fluid"> <div class="span10"> @(Html.Kendo().Grid<Invoice.Models.ViewModels.SegmentViewModel>() .Name("Segment") .TableHtmlAttributes(new { style = "height:20px; " }) .Columns(columns => { columns.Bound(p => p.AirlineShortName).EditorTemplateName("AirlineEditor").Title("Airline").ClientTemplate("#=AirlineName#").Width(5); columns.Bound(p => p.DepartureDate).Width(9); columns.Bound(p => p.Arrives).EditorTemplateName("ArrivalLocation").Title("Arrival").ClientTemplate("#=Arrives#").Width(5); columns.Bound(p => p.ArrivalDate).Width(7); columns.Bound(p => p.FlightNumber).Width(8); }) .Editable(editable => editable.Mode(GridEditMode.InCell)) .Navigatable() .Sortable() .Scrollable(scr => scr.Height(200)) .Scrollable() .DataSource(dataSource => dataSource .Ajax() .Batch(true) .ServerOperation(false) .Events(events => events.Error("error_handler")) .Model(model => model.Id(p => p.AirlineName)) .Create("Editing_Create", "Grid") .Read("Segment_Read", "Document") .Update("Editing_Update", "Grid") .Destroy("Editing_Destroy", "Grid") ) ) </div> </div> <button type="submit" class="btn btn-primary"> Save Segments</button> }但是送出後,Kendo Grid裡面的數據並沒有Posted。如何將 Kendo Grid 數據發佈到伺服器?
網格數據不在表單元素中。表單元素僅在編輯單元格時出現,然後將其刪除。您不能使用表單送出按鈕將數據發佈到伺服器。
正確的方法是添加網格提供的“保存”命令按鈕:
@(Html.Kendo().Grid<Invoice.Models.ViewModels.SegmentViewModel>() .Name("Segment") .ToolBar(toolbar => { toolbar.Save(); // add save button to grid toolbar }) // ... rest of options ...或者通過呼叫Grid 小元件上的saveChanges() :
<button type="button" id="save">Save Segments</button> $("#save").on("click", function () { $("#Segment").data("kendoGrid").saveChanges(); });
Grid 不是表單元素,不能簡單地發佈到伺服器。您可以利用 Grid 提供的模板並根據要送出給伺服器的不同行模型創建隱藏元素。
**此程式碼庫**中使用了相同的方法,它準確地展示了您正在搜尋的內容。