Telerik ScriptRegistrar并在头部加载jquery脚本

时间:2011-03-11 13:12:02

标签: jquery telerik

我在网站上使用jquery.curvycorners和typeface,我希望将这些脚本加载到页面的头部(为了让页面从头开始正确呈现)。

现在我正在介绍一些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渲染?

2 个答案:

答案 0 :(得分:4)

您不应该在两个地方加载ScriptRegistrar。此外,脚本注册器应始终位于页面底部。如果你绝对需要在ScriptRegistrar之前有javascript引用,你可以执行以下操作:

<!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,并像上面一样在组中添加自己的jQuery。

答案 1 :(得分:0)

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