0

我创建了一个 ajax 日期扩展器的用户控件“日历”以及一个用于获取日期的文本框。现在我试图为我的表中填充的所有行动态创建这个控件。它给出了以下错误:- 只能将 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;

提前感谢您的建议。

4

2 回答 2

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 仅用作嵌套控件怎么样?

于 2012-07-16T07:58:49.730 回答
0

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

于 2012-07-16T07:54:25.157 回答