2014-12-24 2 views
2

Я хочу сделать некоторые функции в событии клика кнопки обновления сетки telerik.Как вызвать событие onclick кнопки обновления сетки telerik MVC

По умолчанию кнопка обновления указана внизу в сетке в левом углу. Я просто хочу знать, как вызвать событие click.

Вот мой код, который находится на 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() 

) 

ответ

2

Не уверен, что если есть событие клиента для обновления. На Кендо сетке кнопка обновления реализована в виде 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 по умолчанию будет работать тоже (если вы не вернете ложь из метода щелчка).

Если вы хотите только настроить таргетинг на эту кнопку, используйте специальные селектора jquery - например. обернуть сетку в <div> и выберите обновления якорь в пределах этого <div>

сетке имеет идентификатор «Сетка», чтобы ваш селектор может быть что-то вроде:

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

еще, я не могу найти нажмите событие только кнопки обновления, я получаю событие привязки тега привязки; не специально обновлять кнопки. Но да, я могу назвать это, используя условие проверки его ссылки (например, if ($ (this) .attr ("href") == "/ cotroller/action"), затем мой код). –

+0

спасибо, я попробовал. Теперь я понял. –