Loadcontrol von Windows-Anwendung
-
28-09-2019 - |
Frage
Ist es möglich, in Loadcontrol Windows-Anwendung?
Ich habe E-Mail-Generation als Web, aber ich möchte es Windows-Dienst für die monatlichen Newsletter bewegen.
jetzt E-Mails als Benutzersteuerelemente implementiert sind, auf diese Weise html Person kann leicht Look & Feel ändern.
Aktuelle Rendering Implementierung aussieht wie:
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;
Lösung
Lösung für mich war, Web-Service zu nennen, die in der Lage war Html von .ascx zu erzeugen.
- Pass notwendigen Parameter Webservice
- in Webservice, Bauen neue Seite, als Loadcontrol
- alle Parameter einstellen
- Do Rendern String.
Sie können Code in Frage sehen.
Andere Tipps
anstelle der LoadControl
Methode in asp.net verwendet, können Sie Controls.Add
Methode der übergeordneten Steuerung verwenden. Nur ein Panel fügen Sie den Eltern sein, dann:
UserControl uc1 = new UserControl //this is your usercontrol
Panel1.Controls.Add(uc1);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow