2010-11-26 4 views
2

Est-il possible de charger LoadControl dans l'application Windows?LoadControl à partir de l'application Windows

J'ai la génération de courrier électronique en tant que Web, mais je veux le déplacer vers le service Windows pour la newsletter mensuelle.

Les e-mails sont maintenant mis en œuvre en tant que UserControls, de cette façon personne html peut facilement modifier look & sentir.

mise en œuvre de rendu actuel ressemble à:

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 de quoi? Pourquoi avez-vous besoin de chargerControl en premier lieu pour générer des emails? élaborer l'exigence – Illuminati

+0

Quelle exception obtenez-vous? –

Répondre

1

solution pour moi était d'appeler le service Web, ce qui a pu générer Html de .ascx.

  1. passer des paramètres nécessaires à webservice
  2. dans Webservice, Construire nouvelle page, que LoadControl
  3. Définir tous les paramètres
  4. à effectuer le rendu StringBuilder.

Vous pouvez voir le code en question.

0

au lieu de la méthode utilisée dans LoadControl asp.net, vous pouvez utiliser la méthode Controls.Add du contrôle des parents. Il suffit d'ajouter un panneau pour être le parent alors:

UserControl uc1 = new UserControl //this is your usercontrol 

Panel1.Controls.Add(uc1); 
+0

Microgen - vous avez manqué cette partie que j'ai besoin de Windows. J'ai en fait eu du code qui fait la même chose à partir de Page. Cela fonctionne très bien dans asp.net, mais pas à partir de l'environnement d'application de la console – st78

+0

Je pensais que c'est une application winforms. vous ne pouvez pas afficher les contrôles de l'interface graphique dans une application de console! –

+0

Ceci est l'application COnsole et j'ai besoin de HTML pour ces contrôles WEB. – st78

Questions connexes