2010-11-26 8 views
2

Ist es möglich, LoadControl in Windows-Anwendung?LoadControl von Windows-Anwendung

Ich habe E-Mail-Generation als Web, aber ich möchte es zu Windows-Service für den monatlichen Newsletter verschieben.

E-Mails sind jetzt als UserControls implementiert, auf diese Weise kann HTML-Person leicht Look & fühlen.

Aktuelle Rendering Umsetzung wie folgt aussieht:

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; 
+0

LoadControl von was? Warum musst duControl an erster Stelle laden, um E-Mails zu generieren? Erarbeiten Sie die Anforderung – Illuminati

+0

Welche Ausnahme erhalten Sie? –

Antwort

1

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, Build neue Seite, als Loadcontrol
  3. Stellen Sie alle Parameter
  4. zu String Rendering tun.

Sie können Code in Frage sehen.

0

anstelle der LoadControl Methode in asp.net verwendet, Sie Controls.Add Methode der übergeordneten Steuerung verwenden können. Fügen Sie einfach ein Panel die Eltern zu sein, dann:

UserControl uc1 = new UserControl //this is your usercontrol 

Panel1.Controls.Add(uc1); 
+0

Microgen - Sie haben den Teil vermisst, den ich von Windows brauche. Ich hatte tatsächlich Code, der dasselbe von Page macht. Es funktioniert großartig innerhalb von asp.net, aber nicht von der Konsole Anwendungsumgebung – st78

+0

Ich dachte, dies ist eine winforms-Anwendung. Sie können GUI-Steuerelemente in einer Konsolenanwendung nicht anzeigen! –

+0

Dies ist COnsole Application und ich brauche HTML für diese WEB-Steuerelemente. – st78

Verwandte Themen