Domanda

E 'possibile LoadControl in applicazione delle finestre?

Non ho generazione e-mail e web, ma voglio spostarlo in servizio di Windows per il bollettino mensile.

Messaggi di posta elettronica ora sono implementate come controlli utente, in questo modo persona HTML può facilmente modificare look & feel.

Attualità sguardi di implementazione di rendering come:

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;
È stato utile?

Soluzione

soluzione per me è stato quello di chiamare il servizio web, che è stato in grado di generare codice HTML dal ascx.

  1. passare i parametri necessari per webservice
  2. in Webservice, Costruire nuova pagina, che LoadControl
  3. Imposta tutti i parametri
  4. Do rendering StringBuilder.

E 'possibile visualizzare il codice in questione.

Altri suggerimenti

invece del metodo LoadControl utilizzato in asp.net, è possibile utilizzare il metodo Controls.Add del controllo padre. Basta aggiungere un pannello per essere il genitore poi:

UserControl uc1 = new UserControl //this is your usercontrol

Panel1.Controls.Add(uc1);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top