如何调用 MVC Telerik 网格刷新按钮的点击事件

How to call onclick event of MVC telerik grid refresh button

本文关键字:按钮 刷新 事件 网格 Telerik 何调用 调用 MVC      更新时间:2023-09-26

我想对 telerik 网格刷新按钮的点击事件做一些功能。

默认情况下,刷新按钮位于左上角网格的底部。我只想知道如何调用它的点击事件。

这是我在index.cshtml上的代码:

@(Html.Telerik().Grid<ModuleViewModel>()
        .Name("Grid")
         .DataKeys(keys =>
        {
            keys.Add(p => p.Modules.Id);
        })
        .DataBinding(dataBinding =>
                dataBinding.Ajax()
                .Select("Select", "Module", new { GridButtonType.Text })                    
                .Update("Save", "Module", new { GridButtonType.Text }))
        .Columns(columns =>
        {
            columns.Command(commands =>
            {
                commands.Custom("Edit").Action("Edit", "Module").ImageHtmlAttributes(new { @class = "t-edit" }).ButtonType(GridButtonType.Image).HtmlAttributes(new { title = "Edit" });
            }).Width(20).Title("Edit").Visible(OperationHelper.EditOperation);
            columns.Command(commands =>
            {
                commands.Custom("Delete").Action("Delete", "Module").ImageHtmlAttributes(new { @onclick = "return confirmDelete()", @class = "t-delete" }).ButtonType(GridButtonType.Image).HtmlAttributes(new { title = "Delete", @class = "RightAlign" });
            }).Width(20).Title("Delete").Visible(OperationHelper.DeleteOperation);
            columns.Bound(p => p.Modules.Name).Width(100).Title("Name");
            columns.Bound(p => p.Modules.SubModuleId).Width(100).Title("SubModule Id").Hidden();
            columns.Bound(p => p.SubModuleName).Width(100).Title("SubModule Name");
            columns.Bound(p => p.Modules.IsDisplay).Width(100).Title("Is Display");
        })
        .Sortable()
        .Filterable()
)

不确定是否有要刷新的客户端事件。在剑道网格上,刷新按钮作为 HTML 锚标记实现,如下所示:

<a class="k-pager-refresh k-link" href="/controller/action?etc..." title="Refresh">
<span class="k-icon k-i-refresh">Refresh</span>
</a>

因此,要在刷新中添加额外的功能,您可以将一些 Jquery 挂接到锚点 onclick 并执行您的操作以及/而不是默认行为。

根据您的评论 - 您当然可以这样做...

$(document).ready(function () {
    $('.k-pager-refresh').click(function () {
        alert('I was clicked ' + $(this).attr("href")); 
        var link = $(this).attr("href");
        if (link == "/SalesDb/Batch") {
            alert("Refreshing");
        }
    });
});

并且 Telerik 默认刷新脚本也将运行(除非您从单击方法返回 false)。

如果您只想定位该按钮,请使用特定的 jquery 选择器 - 例如,将网格包装在<div>中并在该<div>中选择刷新锚点

您的网格的 ID 为"网格",因此您的选择器如下所示:

$('#Grid .t-refresh').click(function () { ...