我创建了ajax date extender的用户控件“Calendar”以及用于获取日期的文本框。现在我尝试动态地为我的表中填充的所有行创建此控件。它给出了以下错误: - 只能将一个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;
我已经宣布了一个全局变量: - public ASP.Calendar Calendar1;
提前感谢您的建议。
答案 0 :(得分:0)
您已在页面中多次包含脚本管理器,可能在用户控件本身中。
答案 1 :(得分: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只能用作嵌套控件呢?