Il problema è con le prestazioni lente nella griglia di Kendo, quando si tenta di caricare più di 1000 record la griglia impiega circa 8 secondi per caricarsi. Vedo che il controller restituisce i dati JSON in 3 secondi e quindi la griglia di kendo richiede tempo per essere completata.Griglia di Kendo: problema di prestazioni lente
Ho un PageSize di 500 record e utilizzato DataSourceRequest, quindi i dati per ciascuna pagina verranno restituiti solo dal controller. Ma ancora nessuna gioia.
Qualcuno può consigliarmi come migliorare le prestazioni della rete.
Si prega di trovare il mio codice qui sotto
@(Html.Kendo().Grid<Model>()
.Name("KendoTestGrid")
.Columns(columns =>
{
columns.Bound(p => p.Column5)
.Width("18%")
.ClientTemplate("#= formatResult(format(column5, '')) #")
.EditorTemplateName("Column5")
.ClientFooterTemplate("<span href='\\#' id='total'>Total : </span>");
columns.Bound(p => p.Column6)
.EditorTemplateName("Column6")
.ClientTemplate("#= format(column6, '') #")
.ClientFooterTemplate("<span href='\\#' id='spanfooter'></span>")
.Width("23%");
columns.Bound(p => p.column7)
.ClientTemplate("<span href='\\#' id='#=Id #'>#= format(Column7,'')#</span>")
.ClientFooterTemplate("<span href='\\#' id='spansum'></span>")
.HtmlAttributes(new { Class = "number" })
.Width("18%");
columns.Bound(p => p.column8)
.EditorTemplateName("column8")
.ClientFooterTemplate("Total:")
.ClientFooterTemplate("<span href='\\#' id='TotalSum1'></span>")
.Width("23%");
})
.DataSource(dataSource => dataSource
.Ajax()
.Batch(true)
.ServerOperation(true)
.Read(read => read.Action("Action", "Controller").Data("getData"))
.Create(c => c.Action("Action", "Controller").Data("getData2"))
.Update(update => update.Action("Action", "Controller").Data("getData3"))
.PageSize(500) .Events(x => x.DataBound("ongriddatabound")
.Edit("ongridedit")
.Change("ongridchange"))
.Editable(editing => editing.Mode(Kendo.Mvc.UI.GridEditMode.InCell))
.Filterable()
.Groupable()
.Sortable()
.Scrollable()
.Pageable()
.Selectable(s => s.Mode(GridSelectionMode.Single).Type(GridSelectionType.Row))
.Resizable(resize => resize.Columns(true))
.AutoBind(false)
)
Per favore, puoi aggiungere il codice di rete alla domanda iniziale. Ho creato una griglia con 1200 elementi e una dimensione di 500 pagine che non richiede nulla nel mio browser/laptop. Puoi provarlo qui http://jsfiddle.net/OnaBai/27g3s/. Stai usando modelli complessi o qualcosa del genere? – OnaBai
Si prega di includere il codice utilizzato per rendere la griglia, e qualsiasi riga personalizzata o modelli di modifica che potresti aver usato. – CodingWithSpike
Uso Clienttemplate e Editortemplate nelle mie colonne. EditorTemplate sta avendo la casella di testo numerico in due delle colonne. – user1870358