编辑模式下的剑道网格不会触发推送事件

时间:2014-07-19 10:30:55

标签: kendo-ui kendo-grid kendo-asp.net-mvc

我的网格是这样构建的:

 @(Html.Kendo().Grid<MyProject.Models.DataObjects.MyObject>()
        .Name("my-object-grid")
        .Columns(columns =>
        {
            columns.Bound(p => p.ID).Hidden();
            columns.Bound(p => p.Name).Width(300);
            columns.Command(command =>
            {
                command.Edit().Text("Modify")
                    .UpdateText("Save")
                    .CancelText("Cancel")
                    .HtmlAttributes(new { style = "width:90px;height:30px;font-size:12px;" });
                command.Destroy().Text("Delete").HtmlAttributes(new { style = "width:90px;height:30px;font-size:12px;" });
            }).Width(220);
        })
        .ToolBar(toolbar => toolbar.Create().Text("Add").HtmlAttributes(new { style = "width:120px;height:30px;float:left;" }))
        .Editable(editable => editable.Mode(GridEditMode.PopUp)
        .Window(win => win.Title("MyObject")).TemplateName("MyObject"))
        .Pageable()
        .Sortable()
        .Scrollable()
        .Filterable()
        .HtmlAttributes(new { style = "height:430px;" })
        .DataSource(dataSource => dataSource
            .Ajax()
            .PageSize(10)
            .Model(model => 
            { 
                model.Id(p => p.ID);
            })
            .Create(update => update.Action("MyObject_Create", "MyObject"))
            .Read(read => read.Action("MyObject_Read", "MyObject"))
            .Update(update => update.Action("MyObject_Update", "MyObject"))
            .Destroy(update => update.Action("MyObject_Delete", "MyObject"))
                    .Events(evt => evt.Push("myObjectGridDataSource_push").Error("myObjectGridDataSource_error"))
         )
)

foolwingo javacript处理程序在以下定义:

<script type="text/javascript">

function myObjectGridDataSource_push(e) {
    alert(e.type);
}

function myObjectGridDataSource_error(e) {
    alert(e.status);
}
</script>

帮助程序生成的javascript似乎没问题,但是当我添加/编辑/删除某些网格项时,事件处理程序永远不会被触发。但是对控制器的请求工作正常。

这可能与网格的编辑模式有关(使用弹出窗口)吗? 我找不到我做错了什么......

1 个答案:

答案 0 :(得分:2)

在dataSource传输初始化期间调用Push,以设置推送通知。数据源只会调用此函数一次并提供回调,这些回调将处理推送通知(从服务器推送的数据)。

Push event Detailed information

如果你能说出你想要达到的目标,那么我可以提供更多帮助。此外,如果您想在记录ID被删除或插入或删除之前捕获事件,那么push将不会这样做。您需要实现网格的 sync 事件。