可以在windows应用程序中使用LoadControl吗?
我有电子邮件生成作为网络,但我想把它移动到每月时事通讯的windows服务。
电子邮件现在被实现为UserControls,通过这种方式,html用户可以很容易地修改外观。
当前的渲染实现如下所示:
StringBuilder sb = new StringBuilder(4000);
StringWriter sw = new StringWriter(sb);
HtmlTextWriter htw = new HtmlTextWriter(sw);
Page page = new Page();
EmailTemplateBase emailCtrl = (EmailTemplateBase)page.LoadControl(
"Controls/EmailTempaltes/Template.ascx");
// Exception here
emailCtrl.DataContext = dataContext;
emailCtrl.Parameter = parameter;
emailCtrl.RenderMode = renderMode;
emailCtrl.DataBind();
emailCtrl.RenderControl(htw);
subject = emailCtrl.Subject;
string MessageText = sb.ToString().Replace("\t", "").Replace(Environment.NewLine, "");
return MessageText;发布于 2010-12-12 06:12:15
我的解决方案是调用web服务,它能够从.ascx生成超文本标记语言。
您可以看到有问题的代码。
发布于 2010-11-27 05:04:53
您可以使用父控件的Controls.Add方法,而不使用asp.net中使用的LoadControl方法。只需添加一个面板作为父面板,然后:
UserControl uc1 = new UserControl //this is your usercontrol
Panel1.Controls.Add(uc1);https://stackoverflow.com/questions/4287628
复制相似问题