如何在kendo网格中的onAthleteGridSave / onAthleteGridEdit中获取操作类型

时间:2015-02-03 06:39:31

标签: kendo-ui kendo-grid

我有一个Kendo Grid如下

<% Html.Kendo().Grid<MaintenanceAthletesAthleteGridViewModel>()
.Name("Athletes")
.HtmlAttributes(new { style = "height:435px" })
.DataSource(dataSource => dataSource
      .Ajax()
      .Model(model => model.Id(a => a.ResourceId))
      .Events(e => e.RequestEnd("onRequestEnd"))
      .Create(create => create.Action("InsertAthlete", "Maintenance"))
      .Read(read => read.Action("AthletesMaintenanceAthleteGridAjax", "Maintenance"))
      .Update(update => update.Action("UpdateAthlete", "Maintenance").Data("onAthleteGridUpdate"))
      .Destroy(destroy => destroy.Action("DeleteAthlete", "Maintenance").Data("onAthleteGridUpdate"))
   )
.Events(events => events
                .Save("onAthleteGridSave")
                .Edit("onAthleteGridEdit")
        )
...
%>

function onRequestEnd(e)
{
    if (e.type == "insert" || e.type == "update" || e.type == "destroy") {
        $("#Athletes").data("kendoGrid").dataSource.read();
    }
}

function onAthleteGridSave(e)
{            
    if (e.type == "insert")
    { ...}
}

function onAthleteGridEdit(e)
{            
    if (e.type == "insert")
    { ...}
}

但是onAthleteGridSave(e)和onAthleteGridEdit(e)中的e.type是未定义的,而onRequestEnd(e)中的e.type是可以的。我的问题是如何在onAthleteGridSave / onAthleteGridEdit中的e或其他任何地方找到诸如“插入”或“更新”的动作类型。谢谢。

1 个答案:

答案 0 :(得分:1)

您正在操纵两个对象GridDataSource in your Grid。两者都有自己的一系列事件及其参数。

因此,您在DataSource的RequestEnd中作为参数收到的内容不适用于保存或编辑网格。

您需要更改此类功能:

function onAthleteGridSave(e)
{            
    if (e.model.isNew()) {
    }
    else {
    }
}