Domanda

Voglio creare un gridview da una classe e inviarlo come posta.Conosco la parte di mailing, ma come creare una gridview da un file di classe senza utilizzare un file aspx.

Lo sto facendo perché un metodo verrà chiamato a un orario programmato utilizzando quartz.net e quel metodo creerà una gridview e la invierà come posta.Qualche suggerimento su come si può fare?

MODIFICARE:
Questa visualizzazione a griglia contiene i lavori giornalieri per i pentagrammi (vale a dire) ogni pentagramma ha un numero 'n' di lavori.Quindi ho generato dinamicamente una visualizzazione a griglia all'interno di un ciclo foreach.Come si può fare?

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);
    }
    ...
}
È stato utile?

Soluzione

mi sento di raccomandare la creazione di una tabella HTML usando StringBuilder anziché creare GridView.

Ecco un post simile Convertire DataTable alla tabella HTML

Altri suggerimenti

sono un po 'incerto se ho capito la vostra esigenza in modo corretto, ma è possibile creare un GridView dinamicamente dal codice usando

Gridview myGrid = new GridView() 

finché si è fatto riferimento allo spazio dei nomi System.Web.UI da quella classe.

Inoltre, il GridView ha un metodo

    public virtual void RenderControl(HtmlTextWriter writer)

che può essere utilizzato per ottenere un HtmlTextWriter con le griglie HTML che è quindi possibile passare alla classe email

Dalla tua modifica: presumo che tu voglia creare contenuto html o gridview nel metodo SendMail(), giusto?

in tal caso, puoi optare per il seguente metodo

  • Creare una pagina ASPX
  • inserisci la tua gridview e collegala con datatable
  • Crea un oggetto httpWebrequest e chiama la pagina aspx appena creata
  • leggere il contenuto utilizzando HttpWebResponse
  • utilizzare questo contenuto per inviare posta.

ecco alcuni articoli che ti aiuteranno con httpwebrequest e httpwebresponse

Utilizzo di HttpWebRequest e HttpWebResponse in ASP.NET
Classe HttpWebResponse
Classe HttpWebRequest

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top