2011-03-11 65 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