我最近將一個Telerik控件添加到包含在aspx頁面中的ascx中。此頁面有一個「發送電子郵件」按鈕,單擊該按鈕會向用戶發送頁面呈現的輸出。我添加的Telerik控件需要一個ScriptManager,所以我將它添加到了ascx中。但是,現在電子郵件按鈕不起作用。我收到以下錯誤:嘗試通過電子郵件呈現ASP.NET頁面的呈現內容時ScriptManager出現問題
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」 是Telerik的radcombobox控件控制需要一個ScriptManager。它是添加到EmailForm的contentTable控件的子控件。控制層次是這樣的:
contentTable
|__UserControl1
|__ScriptManager1
|__UserControl2
|__Control "myIdHere", a Telerik RadComboBox requiring a ScriptManager
「myIdHere」是什麼樣的控件?它在contentTable容器中嗎?如果是,那麼在contentTable容器中是否有腳本管理器? – lingvomir