如何覆盖kendo网格中的创建按钮单击

时间:2016-01-04 07:54:10

标签: javascript c# asp.net kendo-ui kendo-grid

我有一个剑道网格

@(Html.Kendo().Grid<Spectrum.Model.Bid>()
        .Name("BatchBidGrid")
        .HtmlAttributes(new { style = "height:460px;" })
        .Columns(columns =>
        {
            columns.Bound(p => p.LotNumber).Title("Lot #").Width(250);
            columns.Bound(p => p.Amount);
            columns.Bound(p => p.BidMessageID).Title("% Increase");
            columns.Command(command => command.Destroy()).Width(110);
        })
        .ToolBar(toolbar =>
        {
            toolbar.Create();
            toolbar.Save();
        })
        .Editable(editable => editable.Mode(GridEditMode.InCell))
        .Pageable()
        .Sortable()
        .Navigatable(n => n.Enabled(true))
        .Events(ev => ev.Edit("onEdit"))
        .DataSource(dataSource => dataSource
            .Ajax()
            .Batch(true)
            .ServerOperation(false)
            .Events(events => events.Error("error_handler"))
            .Model(model => model.Id(p => p.ID))

            .Read("Editing_Read", "Grid")
            .Update("Editing_Update", "Grid")
            .Destroy("Editing_Destroy", "Grid")
        )
        .Events(ev => ev.SaveChanges("submitBatchBid"))
)

我想覆盖此网格的创建按钮单击事件我已完成以下java脚本功能。

$("tr .k-grid-add", "#grid").on("click", function (e) {
            alert("add pressed!");
        })

但它仍在调用kendo的默认网格创建功能。请建议一种方法来做到这一点。

2 个答案:

答案 0 :(得分:1)

您需要添加此部分:

e.preventDefault();

在你的功能开始。这行代码停止正常的代码执行,并继续执行函数中的代码。

<强>更新

替换工具栏按钮:

.ToolBar(toolBar => toolBar.Template("<a href=\"\" class=\"k-button k-button-icontext k-grid-myadd\"><span class=\"k-icon k-add\"></span>Add new record</a>"))

然后用类k-gri-myadd更改javascript:

$("tr .k-grid-myadd", "#grid").on("click", function (e) {
    e.preventDefault();
    alert("add pressed!");
})

答案 1 :(得分:0)

我可以通过使用两者来覆盖它:

e.preventDefault(); 
e.stopPropagation();