Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 尝试通过电子邮件发送ASP.NET页面的呈现内容时,ScriptManager出现问题_C#_Asp.net_Telerik - Fatal编程技术网

C# 尝试通过电子邮件发送ASP.NET页面的呈现内容时,ScriptManager出现问题

C# 尝试通过电子邮件发送ASP.NET页面的呈现内容时,ScriptManager出现问题,c#,asp.net,telerik,C#,Asp.net,Telerik,我最近在aspx页面中添加了一个电传控制。此页面有一个“发送电子邮件”按钮,单击该按钮将向用户发送页面的呈现输出。我添加的Telerik控件需要ScriptManager,因此我将其添加到ascx中。但是,现在电子邮件按钮不起作用。我得到以下错误: ID为“myIdHere”的控件需要页面上有ScriptManager。ScriptManager必须出现在任何需要它的控件之前 我知道脚本管理器存在,因为当我转到该url时,页面工作正常,只有当它尝试通过电子邮件发送呈现的输出时才会失败 下面是一段

我最近在aspx页面中添加了一个电传控制。此页面有一个“发送电子邮件”按钮,单击该按钮将向用户发送页面的呈现输出。我添加的Telerik控件需要ScriptManager,因此我将其添加到ascx中。但是,现在电子邮件按钮不起作用。我得到以下错误:

ID为“myIdHere”的控件需要页面上有ScriptManager。ScriptManager必须出现在任何需要它的控件之前

我知道脚本管理器存在,因为当我转到该url时,页面工作正常,只有当它尝试通过电子邮件发送呈现的输出时才会失败

下面是一段代码片段,您对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

如果确定页面输出包含ASP.NET AJAX脚本(由ScriptManager控件呈现),则可以通过设置

myIdHere.RegisterWithScriptManager = false;
这将删除服务器上脚本管理器控件的组合框依赖项。请注意,该控件在浏览器中仍然需要ASP.NET AJAX客户端脚本,这就是为什么您首先需要确保页面上有ScriptManager。

什么类型的控件是“myIdHere”?它是否在contentTable容器中?如果是,它前面的contentTable容器中是否有脚本管理器?