Pergunta

Quero criar um formulário Gridview uma classe e enviar essa GridView como Mail. Conheço a peça de correspondência, mas como criar um GridView a partir de um arquivo de classe sem usar um arquivo ASPX.

Estou fazendo isso porque um método será chamado em um horário programado usando o quartz.net e esse método criará um GridView e o enviará como correio. Alguma sugestão de como isso pode ser feito?

EDITAR:
Este Gridview contém trabalhos diários para equipes (ou seja) Cada equipe tem um número de obras. Então, eu gero dinamicamente uma GridView dentro de um loop foreach. Como pode ser feito?

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

e 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);
    }
    ...
}
Foi útil?

Solução

Eu recomendaria a criação de uma tabela HTML usando StringBuilder em vez de criar GridView.

Aqui está uma postagem semelhante Converter datatable para tabela html

Outras dicas

Estou um pouco inseguro se eu entendi sua exigência corretamente, mas você pode criar uma GridView dinamicamente do código usando

Gridview myGrid = new GridView() 

Contanto que você tenha referenciado o espaço de nome do sistema.web.ui dessa classe.

Além disso, o Gridview tem um método

    public virtual void RenderControl(HtmlTextWriter writer)

que você pode usar para obter um htmltextwriter com as grades html que você pode passar para sua aula de e -mail

Sua edição - presumo que você queira criar conteúdo HTML ou GridView no método sendmail (), certo?

Nesse caso, você pode optar pelo seguinte método

  • Crie uma página ASPX
  • Coloque seu Gridview nele e vincule -o com o Datatable
  • Crie objeto httpwebrequest e ligue para a página ASPX recém -criada
  • Leia o conteúdo usando HttpwebroSponse
  • Use este conteúdo para enviar e -mails.

Aqui estão alguns artigos que o ajudarão com httpwebrequest e httpwebesponse

Trabalhando com httpwebrequest e httpwebroponse em asp.net
Classe HTTPWEBRESPONSE
HTTPWEBREQUEST CLASSE

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top