LoadControl del uso de las ventanas
-
28-09-2019 - |
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;
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
- Pass a webservice
- en el servicio web, Construir nueva página, que LoadControl
- Establecer todos los parámetros
- 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