2013-03-09 21 views
7

我正在使用Kendo ASP.NET MVC包裝。我注意到包裝正在渲染腳本以在控件標記之後立即初始化控件。有沒有一種方法可以讓腳本在底部呈現?在使用Telerik ASP.NET MVC控件之前,您可以讓腳本管理器渲染底部的所有初始化。那可能嗎?在MVC中控制Kendo腳本位置渲染

回答

11

在2013年第1季度發佈中,他們添加了對延期腳本的支持。你可以這樣使用它:

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

注意在鏈末端Deferred()方法。然後,在佈局中添加您的標記的任何地方執行以下操作:

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

有關更多信息,請參見 http://www.kendoui.com/forums/mvc/general-discussions/kendo-initialization-scripts-in-body-interfere-with-other-libraries.aspx

+0

這是一個真正驚人的劍道UI +1兄弟! – 2015-07-31 02:32:32

2

對不起,這是不可能的,不能以工作爲基礎。 Kendo Wrappers for MVC的腳本總是在小部件的html包裝器之後呈現。

它在documentation中被提及。

編輯:這是後來可能的延期腳本rendereding jrummell exiplained。

2

這會讓人頭疼,但由於包裝器生成的jQuery腳本不能在部分視圖中生成包裝器,請抓取生成的腳本並將其注入到頁面底部的腳本標記中?當然,這意味着要麼重複代碼,要麼有相當多的代碼以可重用的方式生成解決方法,所有腳本最終都會在頁面底部而不是中間部分。

我假設這是爲了提高性能(最好的做法通常是將CSS放在頂部,腳本放在底部)?

+0

是的,幫助表現。好主意。取決於輸出可能會得到waaaaaayyy凌亂,但好主意。 +1 – 2013-03-19 19:52:30