我想在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()
)
答案 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 () { ...