簡體   English   中英

Kendo Grid內聯編輯更新時獲取當前行數據

[英]Kendo Grid Inline Editing Get current row data when updating

我正在Kendo網格中使用內聯編輯,並且希望在進行更新時能夠獲取當前行數據。

Html.Kendo().Grid<WheresMyTool.Models.COMPANYADDRESS>()
        .Name("ShipToLocationsGrid")
        .Editable(editable => editable.Mode(Kendo.Mvc.UI.GridEditMode.InLine))
        .Pageable(pager => pager.PageSizes(new List<object> { 5, 10, 20, 100 }))
        .DataSource(dataSource => dataSource
            .Ajax()
            .Model(model => model.Id(p => p.COMPANY))
            .Read(read => read.Action("IndexShipToLocations", "Company", new { company = Model.company  }))
            .Update(update => update.Action("ShipToLocations_Update"))
            .PageSize(20)
        ) 

這是我的更新方法

public ActionResult ShipToLocations_Update([DataSourceRequest] DataSourceRequest request, COMPANYADDRESS ca)
        {
            Repository repo = new Repository();
            repo.UpdateCompanyAddressRecord(ca, username);
            return Json(ca);
        }

我希望能夠訪問當前數據。 似乎只有已修改的數據被傳入。

[HttpPost]
    public ActionResult EditTestStationInLine([DataSourceRequest] DataSourceRequest request, TestStationViewModel tsvm)
    {
        if(tsvm != null && ModelState.IsValid)
        {
            TestStation ts = _testStationService.Find(tsvm.Id);
            ts.ProductionLineId = tsvm.ProductionLineId;
            ts.ProdLine = _productionLineService.Find(tsvm.ProductionLineId);
            ts.Name = tsvm.Name;

            _testStationService.Update(ts);

            tsvm.Id = ts.Id;
            tsvm.ProductionLineId = ts.ProductionLineId;
        }

        return this.Json(new[] { tsvm }.ToDataSourceResult(request, ModelState));
    }

這是我的一個InLine編輯示例。 您的視圖模型用於創建數據庫模型。 創建數據庫模型后,您可以傳回隱藏的屬性,在本例中為Id和CreateAt。 希望這有助於回答您的問題。

編輯:

function Edit(e) {
    var grid = $('#NAMEOFKENDOGRID').data('kendoGrid');
    var dataItem = grid.dataItem($(e.target).parents('tr'))
    var id = dataItem.id;
    $.ajax({//Makes an ajax call
        success: function (data) {
            $('#NAMEOFDIV').load("/Controller/Update/" + id);
        }
    });
}

您可以創建一個自定義命令,方便地稱為Edit,然后從該行獲取ID。 它還會對您的update方法進行ajax調用。 修改ajax以適合您的需求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM