Foros del Web » Programación para mayores de 30 ;) » .NET »

Datos del datagrid en el cuerpo de un email

Estas en el tema de Datos del datagrid en el cuerpo de un email en el foro de .NET en Foros del Web. Hola, Quiero mandar por email el resultado de una consulta que muestro en un datagrid. La verdad es que no se como empaquetar el contenido ...
  #1 (permalink)  
Antiguo 13/05/2005, 11:21
 
Fecha de Ingreso: diciembre-2001
Mensajes: 262
Antigüedad: 23 años, 2 meses
Puntos: 0
Datos del datagrid en el cuerpo de un email

Hola,

Quiero mandar por email el resultado de una consulta que muestro en un datagrid.
La verdad es que no se como empaquetar el contenido del mismo en el cuerpo del mensaje, he estado mirando otros post acerca del envio de email pero no veo nada relacionado,

Podriais darme alguna pista por donde buscar, o como puedo hacerlo...

Saludos.
  #2 (permalink)  
Antiguo 13/05/2005, 18:27
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 20 años, 1 mes
Puntos: 7
Lo que puedes hacer es "renderizar" el contenido del control usando para esto el método RenderControl del Datagrid.

Algo así:
Código:
System.IO.StringWriter tw = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);

DataGrid1.RenderControl(hw);

string contenidoDg = tw.ToString();
...
En el cuerpo del email que vas a mandar asignas la variable "contenidoDg".

Nota: Va a mandar un error si tu DataGrid tiene controles que realizan postback (HyperLink, Button, etc), si ese es el caso, avisas para solucionarlo.

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #3 (permalink)  
Antiguo 14/05/2005, 05:23
 
Fecha de Ingreso: diciembre-2001
Mensajes: 262
Antigüedad: 23 años, 2 meses
Puntos: 0
oK.

Mil Gracias.

Si que tengo controles, Button, pero no pasa nada, lo haré desde otra página donde voy a cargar el datagrid sin nada, solo las columnas necesarias.

Voy a probar

Saludos.
  #4 (permalink)  
Antiguo 14/05/2005, 06:32
 
Fecha de Ingreso: diciembre-2001
Mensajes: 262
Antigüedad: 23 años, 2 meses
Puntos: 0
Un paso mas por favor.

este codigo es el que he puesto

Código:
dgCarrito.DataBind()

        Dim tw = new System.IO.StringWriter()
        Dim hw = new HtmlTextWriter(tw)

        dgCarrito.RenderControl(hw)

        Response.Write(tw.ToString())
Pero me da el error

Código:
 System.Web.HttpException: El control 'dgCarrito__ctl2__ctl0' de tipo 'DataGridLinkButton' debe colocarse dentro de una etiqueta de formulario con runat=server.
----
Línea 145:            dgCarrito.RenderControl(hw)
¿?

Saludos. y gracias
  #5 (permalink)  
Antiguo 14/05/2005, 09:26
Avatar de HenrydeSousa  
Fecha de Ingreso: septiembre-2004
Ubicación: Venezuela
Mensajes: 300
Antigüedad: 20 años, 5 meses
Puntos: 2
Recuerda que como te dijo xknown, si tienes dentro de tu datagrid controles que causan postback vas a tener algunos problemas, y si no me equivoco debes tener dentro de tu datagrid un control linkbutton. Debes tener un datagrid "sin nada", no sé si ya lo estás haciendo, y tal vez no sea ese tu error.
  #6 (permalink)  
Antiguo 14/05/2005, 11:45
 
Fecha de Ingreso: diciembre-2001
Mensajes: 262
Antigüedad: 23 años, 2 meses
Puntos: 0
Teneis razón,

me quedaba una columna con un Link.

Graciasssss.
  #7 (permalink)  
Antiguo 14/05/2005, 17:00
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 20 años, 1 mes
Puntos: 7
Si de todas maneras deseas enviar tal cual se ve el datagrid, te puedo enviar el código para hacer eso.

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #8 (permalink)  
Antiguo 14/05/2005, 17:31
 
Fecha de Ingreso: diciembre-2001
Mensajes: 262
Antigüedad: 23 años, 2 meses
Puntos: 0
Gracias de nuevo.

Me lo envias y asi lo tengo de referencia
[email protected]

Un Saludo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:27.