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;
War es hilfreich?

Lösung

Lösung für mich war, Web-Service zu nennen, die in der Lage war Html von .ascx zu erzeugen.

  1. Pass notwendigen Parameter Webservice
  2. in Webservice, Bauen neue Seite, als Loadcontrol
  3. alle Parameter einstellen
  4. 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
scroll top