Pregunta

¿Es posible LoadControl en uso de las ventanas?

Tengo la generación de correo electrónico como una tela, pero quiero moverlo a servicio de Windows para el boletín mensual.

Los correos electrónicos ahora se implementan como UserControls, en esta persona forma HTML puede modificar fácilmente look & feel.

Current miradas de aplicación de renderizado como:

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;
¿Fue útil?

Solución

Solución para mí fue llamar a un servicio web, que fue capaz de generar código HTML de Ascx.

    parámetros necesarios
  1. Pass a webservice
  2. en el servicio web, Construir nueva página, que LoadControl
  3. Establecer todos los parámetros
  4. Do prestación de StringBuilder.

Se puede ver código en cuestión.

Otros consejos

en lugar del método utilizado LoadControl en asp.net, puede utilizar el método Controls.Add del control de los padres. Sólo tiene que añadir un panel a ser el padre a continuación:

UserControl uc1 = new UserControl //this is your usercontrol

Panel1.Controls.Add(uc1);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top