【发布时间】:2010-03-24 20:54:59
【问题描述】:
我最近向 ascx 添加了一个 Telerik 控件,该控件包含在 aspx 页面中。此页面有一个“发送电子邮件”按钮,单击该按钮时将通过电子邮件向用户发送页面呈现的输出。我添加的 Telerik 控件需要一个 ScriptManager,所以我将它添加到 ascx。但是,现在电子邮件按钮不起作用。我收到以下错误:
ID 为“myIdHere”的控件需要页面上的 ScriptManager。 ScriptManager 必须出现在任何需要它的控件之前。
我知道脚本管理器存在,因为当我转到该 url 时页面工作正常,它仅在尝试通过电子邮件发送呈现的输出时失败。
这是一个代码sn-p,关于在做这种事情时scriptmanager是否有问题的任何想法?
Page EmailPage = new EmailBasePage();
System.Web.UI.HtmlControls.HtmlForm EmailForm = new System.Web.UI.HtmlControls.HtmlForm();
EmailPage.Controls.Add(EmailForm);
EmailForm.Controls.Add(contentTable); //this is the container with all the controls I want to email
StringBuilder SB = new StringBuilder();
StringWriter html = new StringWriter(SB);
HtmlTextWriter mhtmlWriter = new HtmlTextWriter(html);
EmailPage.DesignerInitialize();
EmailPage.RenderControl(mhtmlWriter);
mhtmlWriter.Close();
更新 错误消息中引用的控件“myIdHere”是需要 ScriptManager 的 Telerik RadComboBox 控件。它是添加到 EmailForm 的 contentTable 控件的子控件。控制层次是这样的:
contentTable
|__UserControl1
|__ScriptManager1
|__UserControl2
|__Control "myIdHere", a Telerik RadComboBox requiring a ScriptManager
【问题讨论】:
-
“myIdHere”是个什么样的控件?它在 contentTable 容器中吗?如果是,在它之前的 contentTable 容器中是否有脚本管理器?