J'utilise l'interface utilisateur Telerik pour ASP.NET MVC et j'ai grille définie comme ci-dessousKendo DataSource événement requestEnd se tiré plusieurs fois
@(Html.Kendo().Grid<GridModel>()
.Name("grid")
.Columns(col =>
{
col.Bound(o => o.ID)
.ClientTemplate("<input class = 't-checkbox-selectrow' type='checkbox' value='#=ID#'/><label></label>")
.HeaderTemplate("<input class = 't-checkbox-selectallrows' type='checkbox' id='selectAll'/><label></label>")
.Sortable(false)
.Filterable(false)
.HtmlAttributes(new { @class = "t-gridcol-selectrow" })
.Width(40)
.Locked(true).Lockable(false);
col.Bound(o => o.StatusName).Width(150);
col.Bound(o => o.Deadline).Width(120);
col.Bound(o => o.Cost).Width(150);
})
.AutoBind(false)
.Pageable(x => x.PageSizes(UIConstants.PageSizes))
.Sortable(x => x.AllowUnsort(false))
.Resizable(resizing => resizing.Columns(true))
.Reorderable(reorder => reorder.Columns(true))
.Scrollable(s => s.Height("Auto"))
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(UIConstants.DefaultPageSizeMax)
.Read(read => read
.Action("GetData", "DataProvider"))
.ServerOperation(false))
)
Puis dans le fichier JS je suis remise à zéro la page de la grille à 1 onRequestEnd, Ainsi, l'utilisateur va toujours à la première page chaque fois que je récupérer les données de service à distance
$(function(){
var ds = $("#grid").data("kendoGrid").dataSource;
ds.bind("requestEnd", function (e){
e.sender.page(1);
})
})
Selon le kendo's documentation
requestEnd
Déclenché lorsqu'une demande de service distant est terminée.
Toutefois, l'événement requestEnd
prend également feu sur le changement de page (et le tri). Donc, quand je change la page programmatique, il déclenche à nouveau l'événement requestEnd
et passe en boucle. (note requestEnd
est également renvoyé lorsque je change de page ou de tri manuellement sur l'interface utilisateur)
Est-ce intentionnellement ou une documentation incorrecte?
je me lutté avec cette question pendant un certain temps et je ne l'ai pas trouvé une réponse depuis la grille de kendo ne semble pas avoir un événement qui se déclenche seulement au premier chargement et j'ai regardé beaucoup. La plupart des cas que j'ai eu ce problème j'ai réinitialisé la page dès que j'ai récupéré mes données. Soit sur le bouton cliquez soit sur demande. –