如何调用MVC telerik网格刷新按钮的onclick事件

时间:2014-12-24 09:39:22

标签: javascript c# asp.net-mvc telerik-mvc

我想在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()

)

1 个答案:

答案 0 :(得分:2)

不确定是否存在用于刷新的客户端事件。 在Kendo Grid上,刷新按钮实现为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为&#39;网格&#39;所以你的选择器会是这样的:

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