2011-03-11 75 views
2

我在網站中使用jquery.curvycorners和字體,我想要在頁面的頭部加載這些腳本(爲了讓頁面從頭開始正確渲染) 。Telerik ScriptRegistrar和加載jquery腳本的頭

現在我介紹一些Telerik組件,ScriptRegistrar讓我頭疼。

看來它不想在兩個地方渲染,即使它是兩個獨立的組。

縮寫示例:

<% Html.Telerik().ScriptRegistrar().Scripts(s => s 
      .AddGroup("Group1", group => group 

       // jQuery  
       .Add("jquery-1.4.4.min.js") 
       .Add("jquery-ui-1.8.9.custom.min.js") 

       // Rounded corners 
       .Add("jquery.curvycorners.source.js") 

       .Combined(false) 
       .Compress(false) 
      )) 
      .Render(); 
    %> 

</head> 
<body id="body"> 

    <div> 

yadda yadda... 

    </div> 

    <% Html.Telerik().ScriptRegistrar() 
      .DefaultGroup(group => group 
       .Compress(false) 
       .Combined(false)) 
      .jQuery(false) 
      .Render(); %> 
</body> 
</html> 

我應手挑選那些我真的需要從開始加載並使用腳本標記,還是有使用scriptregistrar在兩個地方呈現的任何組件?

回答

4

你不應該在兩個地方加載ScriptRegistrar。另外,腳本註冊商應始終位於頁面底部。如果你絕對需要的JavaScript引用之前ScriptRegistrar,你可以做到以下幾點:

<!DOCTYPE html> 
<html> 
<head> 
    <title>@ViewBag.Title</title> 
    <link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" /> 
    <script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")" type="text/javascript"></script> 
    @Html.Telerik().StyleSheetRegistrar().DefaultGroup(g => g.Add("telerik.common.css").Add("telerik.windows7.css")) 
</head> 

<body> 
    <div class="page"> 
     ... 
    </div> 
    @Html.Telerik().ScriptRegistrar().jQuery(false); 
</body> 
</html> 

否則我建議在底部的兩個組合,禁用內置jQuery和添加您自己的一組中像你這樣以上。

+1

這就是我害怕的......我真的需要頁面頂部的腳本。如果將它們合併並壓縮,本該很不錯。 – 2011-03-11 16:29:09

+0

出於某種原因,我並不總是使用'ScriptRegistrar()'在頁面底部獲取腳本,然後我的樹視圖不起作用... :(我不知道什麼會導致這種情況......到目前爲止,我也在頭上連接了telerik JS :(我使用輸出緩存來生成treeview的一些控制器動作,可能就是這樣。:( – user2173353 2013-12-20 14:48:32

0

您只能在頁面上調用一次Render()。 Try removing the first one.

+0

確實如此,但是很遺憾,因爲等待加載一些腳本會使頁面加載的印象較慢。 – 2011-05-25 23:05:09