[英]Edit and delete rows in Kendo Grid
在我的 .net 核心應用程序中,我有一個劍道網格,我試圖在其中添加按鈕來編輯/更新和刪除行。 基本上我想要做的是從行中的參數獲取objectid
並重定向到update
或delete
視圖。
<div class="clearfix">
@(Html.Kendo().Grid<M20_AEK.Models.ContractSettlement>()
.Name("ContractSettlementGrid")
.Editable(editable => editable.Mode(GridEditMode.InLine))
.Pageable(pageable => pageable.Input(true).Numeric(false))
.Scrollable()
.Sortable()
.Filterable()
.ColumnMenu()
.Groupable()
.Columns(columns =>
{
columns.Bound(c => c.OBJECTID).Title("ID").Hidden();
columns.Bound(c => c.OPERATOR_OBJECTID).Title("Operator").Width("100px");
columns.Bound(c => c.Year).Title("Year").Width("100px");
columns.Bound(c => c.Month).Title("Month").Width("100px");
columns.Bound(c => c.SETTLEMENT_OBJECTID).Title("Settlement").Width("100px");
columns.Bound(c => c.TECHNOLOGY_OBJECTID).Title("Technology").Width("100px");
columns.Bound(c => c.UPLOAD_SPEED_CLASS_OBJECTID).Title("Upload").Width("100px");
columns.Bound(c => c.DOWNLOAD_SPEED_CLASS_OBJECTID).Title("Download").Width("100px");
columns.Command(command => { command.Edit(); command.Destroy(); }).Width(172);
})
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(20)
.Events(events => events.Error("error_handler"))
.Model(model => model.Id(p => p.OBJECTID))
.Update(update => update.Action("Save", "SettlementContract"))
.Destroy(update => update.Action("Delete", "SettlementContract"))
.Read(read => read.Action("LoadSettlementContracts_Read", "SettlementContract"))
)
)
</div>
我嘗試 map command.Edit()
和command.Destroy()
命令使用我的相應方法我的 controller。當我單擊“ Update button
時,控制台出現錯誤:
Failed to load resource:44326/SettlementContract/Save:1 the server responded with a status of 400 ()
我可以按我嘗試的方式 map 按鈕嗎? 它甚至沒有調用相應的方法,也沒有達到我的斷點。 也許不能這樣做?
這是 controller
[HttpPost]
public IActionResult Save(Model model)
{
// code shortened for brevity
return RedirectToAction("Index", "SettlementContract");
}
像那樣設置 controller 保存方法是行不通的。 您需要密切關注我的示例底部引用的 Kendo 示例。
我相信您的網格配置設置看起來不錯。 您的 controller 方法需要更新為類似於以下內容:
[AcceptVerbs("Post")]
public ActionResult Save([DataSourceRequest] DataSourceRequest request, M20_AEK.Models.ContractSettlement model)
{
if (model != null && ModelState.IsValid)
{
//save logic here
}
return Json(new[]{model}.ToDataSourceResult(request,ModelState));
}
現在,根據您的評論和 controller 邏輯,您似乎希望在成功保存后重定向到某個操作。 目前尚不清楚這是網格所在的同一視圖還是不同的視圖。 如果它是網格所在的同一視圖,則您不需要這樣做,因為網格將使用保存的值進行更新。 如果您絕對必須這樣做,而不是在 Save 方法中從 controller 重定向到該操作,您可以掛鈎網格的 Save 事件,並且在成功保存后,您可以將 window.location 設置為適當的 url .
Kendo 示例參考: https://demos.telerik.com/as.net-core/grid/editing-inline他們最近更新了他們的網站,所以一旦你 go 到這個鏈接,點擊“查看源代碼”按鈕,然后你可以選擇各種按鈕來查看cshtml/controller/等。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.