2012-07-16 60 views
0

我已经创建了ajax日期扩展器的用户控件“日历”以及用于获取日期的文本框。现在即时尝试为我的表中填充的所有行动态创建此控件。它给出了以下错误: - 只有一个ScriptManager实例可以添加到页面。在添加多个Web用户控件时,发生错误“只能将一个ScriptManager的一个实例添加到页面”

下面的代码: -

tc = new TableCell(); 
      tc.Style["width"] = "15%"; 
      Calendar1 = (ASP.Calendar)LoadControl("../Calendar.ascx"); 
      Calendar1.ID = "tbDate" + Convert.ToString(_id); 
      tc.Controls.Add(Calendar1); 
      tr.Cells.Add(tc); 
      tc.Dispose(); 
      tc = null; 

,我已经声明了一个全局变量: - 公共ASP.Calendar CALENDAR1;

在此先感谢您的建议。

+0

从calendar.ascx中删除额外的ScriptManager – Aristos 2012-07-16 07:47:39

+0

请显示日历的代码示例 – 2012-07-16 07:50:28

回答

0

您需要在Web用户控件内部使用ScriptManagerProxy组件,而不是使用完整的ScriptManager。 ScriptManagerProxy是为了这种用途而创建的。

“当已经在父元素中定义了ScriptManager控件时,启用嵌套组件(如内容页面和用户控件)以向页面添加脚本和服务引用。 - http://msdn.microsoft.com/en-us/library/system.web.ui.scriptmanagerproxy.aspx

因此,基本上确保您在调用页面本身上使用ScriptManager,并在您的Calendar.ascx Web用户控件中使用ScriptManagerProxy组件。

如果您的设计不真的允许这样做,那么如何创建第二版Calendar.ascx仅用作嵌套控件?

+0

Johanvw ... thx a ton ..... ScriptManagerProxy真的解决了我的问题。 – 2012-07-16 08:19:01

+0

您的欢迎:)很高兴的信息帮助! – Johanvw 2012-07-16 08:23:34

0

您已在页面中多次包含脚本管理器,可能在用户控件本身中。

相关问题