我需要在页面上拥有多个脚本管理器,或者在生成页面后隐藏/删除一个脚本管理器。这是因为iPad的一些iframe解决方法。我的代码发布在下面,抱歉长代码块。感谢您提供的任何帮助。
主页:
<html>
<body>
<telerik:RadScriptManager ID="ScriptManager1" runat="server">
<Scripts>
<asp:ScriptReference Path="javascript/jquery.js" />
<asp:ScriptReference Path="javascript/enforceMaxlength.js" />
</Scripts>
</telerik:RadScriptManager>
<telerik:RadSplitter ID="rsMain" runat="server" Orientation="Vertical" Width="100%" BorderSize="0" PanesBorderSize="0" ResizeWithBrowserWindow="true">
<telerik:RadPane id="rpContent" runat="server">
<cc1:ScrollingIFrame id="sifMainContent" runat="server" Width="100%" Height="100%" />
</telerik:RadPane>
</telerik:RadSplitter>
</body>
</html>
ScrollingIFrame用户控件:
<div id="theDiv" runat="server" style="position:relative; overflow:auto"></div>
<script type="text/javascript" charset="utf-8">
$('#<%= theDiv.ClientID %>').load('TestPage.aspx', function () {});
</script>
TestPage.aspx:
<html>
<body>
<form id="form1" runat="server">
<div>
<telerik:RadScriptManager ID="ScriptManager1" runat="server" />
[A Bunch of Dynamically Generated Controls That Require a ScriptManager...]
</div>
</form>
</body>
</html>
为了澄清,最终的输出页面最终成为了这个的解析版本: (注意同一页面上的两个脚本管理器)
<html>
<body>
<form id="mainForm" runat="server">
<telerik:RadScriptManager ID="ScriptManager1" runat="server">
<Scripts>
<asp:ScriptReference Path="javascript/jquery.js" />
<asp:ScriptReference Path="javascript/enforceMaxlength.js" />
</Scripts>
</telerik:RadScriptManager>
<telerik:RadSplitter ID="rsMain" runat="server" Orientation="Vertical" Width="100%" BorderSize="0" PanesBorderSize="0" ResizeWithBrowserWindow="true">
<telerik:RadPane id="rpContent" runat="server">
<div id="theDiv" runat="server" style="position:relative; overflow:auto">
<form id="form1" runat="server">
<div>
<telerik:RadScriptManager ID="ScriptManager1" runat="server" />
[A Bunch of Dynamically Generated Controls That Require a ScriptManager...]
</div>
</form>
</div>
</telerik:RadPane>
</telerik:RadSplitter>
</form>
</body>
</html>
答案 0 :(得分:1)
页面上必须只有一个脚本管理器实例。在您的情况下,您尝试将两个页面合并为一个,这意味着两个脚本管理器将覆盖彼此的脚本。您需要从内部页面中删除RadScriptManager控件,并只在主页面中保留一个。要防止内部页面中的RadControls出现服务器错误,您应该为TestPage.aspx内部页面中的每个控件设置RegisterWithScriptManager = false。使用此属性,控件将呈现所需的所有内容,并依赖于其他位置的ScriptManager(在本例中为主页)。