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

How to override create button click in the kendo grid

本文关键字:网格 创建 单击 按钮 何覆盖 覆盖      更新时间:2023-09-26

我有一个剑道网格

@(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!");
        })

但它仍在调用剑道的默认网格创建函数。请给我一个建议。

您需要添加以下部分:

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!");
})

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

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