Pregunta

Quiero crear una forma gridview una clase y enviar ese gridview como correo. Sé que la parte de distribución, sino cómo crear un gridview a partir de un archivo de clase sin necesidad de utilizar un archivo aspx.

Lo hago porque un método será llamado a una hora programada usando quartz.net y que el método creará un gridview y enviarlo como correo. Cualquier sugerencia de cómo se puede hacer?

EDIT:
Este gridview contiene trabajos diarios para el personal (por ejemplo) cada miembro del personal tiene 'n' número de obras. Así que he generar dinámicamente un GridView dentro de un bucle foreach. ¿Cómo se puede hacer?

using Quartz;
public class SendMailJob : IJob
{
    public void Execute(JobExecutionContext context)
    {
        SendMail();
    }
    private void SendMail()
    {
        // put your send mail logic here
    }
}

y Global.asax,

using Quartz;
using Quartz.Impl;

public class Global : System.Web.HttpApplication
{
    void Application_Start(object sender, EventArgs e)
    {
        ISchedulerFactory schedFact = new StdSchedulerFactory();
        // get a scheduler
        IScheduler sched = schedFact.GetScheduler();
        sched.Start();
        // construct job info
        JobDetail jobDetail = new JobDetail("mySendMailJob", typeof(SendMailJob));
        // fire every day at 06:00
        Trigger trigger = TriggerUtils.MakeDailyTrigger(06, 00);
        trigger.Name = "mySendMailTrigger";
        // schedule the job for execution
        sched.ScheduleJob(jobDetail, trigger);
    }
    ...
}
¿Fue útil?

Solución

Yo recomendaría la creación de una tabla HTML utilizando StringBuilder en lugar de crear GridView.

Aquí está un puesto similar Convertir DataTable a HTML Tabla

Otros consejos

Am un poco inseguro si he entendido correctamente su requerimiento pero se puede crear un gridview dinámica a partir de código utilizando

Gridview myGrid = new GridView() 

todo el tiempo que ha referenciado el espacio de nombres System.Web.UI de esa clase.

Además, el GridView tiene un método

    public virtual void RenderControl(HtmlTextWriter writer)

que se puede utilizar para obtener una HtmlTextWriter con las rejillas HTML que luego se puede transmitir a su clase de correo electrónico

Desde que editar - supongo que desea crear contenido HTML o gridview en SendMail (método), a la derecha

?

Si es así, se puede optar por el siguiente método

  • Crear una página aspx
  • poner su gridview en ella y se unen con tabla de datos
  • Crear objeto y HttpWebRequest llamada aspx recién creado
  • leer el contenido mediante HttpWebResponse
  • utilizar este contenido para envío de correo.

Aquí hay algunos artículos que le ayudarán con HttpWebRequest y HttpWebResponse

de Trabajo con HttpWebRequest y HttpWebResponse en ASP.NET
HttpWebResponse
Clase
HttpWebRequest Clase

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top