2013-03-09 18 views
7

Utilizzo i wrapper MVC di Kendo ASP.NET. Ho notato che i wrapper stanno rendendo gli script per inizializzare i controlli immediatamente dopo il markup di controllo. C'è un modo per configurare il rendering degli script in fondo? Prima, con i controlli MVC di Telerik ASP.NET, si poteva fare in modo che lo script manager rendesse tutte le inizializzazioni in fondo. È possibile?Controllo della posizione dello script Kendo Rendering in MVC

risposta

11

Nella versione Q1 2013, hanno aggiunto il supporto per gli script posticipati. Si può usare in questo modo:

@(Html.Kendo().AutoCompleteFor(m => m) 
    .Filter(FilterType.Contains) 
    .MinLength(2) 
    .DataSource(config => 
     { 
      config.Read(action, controller, routeValues); 
      config.ServerFiltering(true); 
     }).Deferred()) 

Nota il metodo Deferred() alla fine della catena. Poi, nel layout aggiungere il seguente in qualsiasi punto della marcatura:

<!-- ... --> 
    @Html.Kendo().DeferredScripts() 
    </body> 
</html> 

Vedi http://www.kendoui.com/forums/mvc/general-discussions/kendo-initialization-scripts-in-body-interfere-with-other-libraries.aspx per ulteriori informazioni.

+0

Questa è un'aggiunta davvero incredibile al fratello UI +1 di Kendo! –

2

Mi dispiace, questo non è possibile e non è stato possibile aggirare il problema. Gli script di Kendo Wrapper per MVC vengono sempre visualizzati dopo il wrapper html del widget.

È indicato nello documentation.

MODIFICA: Questo è più tardi possibile con gli script differiti che rendono il rendering di jrummell exiplained.

2

Questo sarebbe un po 'un mal di testa, ma dal momento che i wrapper generano lo script jQuery non è possibile generare il wrapper in una vista parziale, prendere lo script risultante e iniettarlo in un tag script nella parte inferiore della pagina? Ovviamente, ciò significherebbe un codice duplicato o una buona quantità di codice per generare la soluzione alternativa in un modo riutilizzabile, in modo che gli script finiscano nella parte inferiore della pagina anziché nel mezzo.

Suppongo che questo serva a migliorare le prestazioni (la migliore pratica consiste in genere nel mettere il CSS in alto e gli script nella parte inferiore)?

+0

Sì, per aiutare con le prestazioni. Buona idea. Potrebbe ottenere waaaaaayyy disordinato a seconda dell'output, ma buona idea. +1 –

Problemi correlati