2010-08-11 8 views
0

Je souhaite créer une vue quadrillée à partir d'une classe et l'envoyer sous forme de courrier. Je connais la partie mailing mais comment créer un gridview à partir d'un fichier de classe sans utiliser un fichier aspx.Créer dynamiquement un gridview à partir d'un fichier de classe (.cs)

Je le fais parce qu'une méthode sera appelée à une heure planifiée en utilisant quartz.net et que cette méthode créera une grille et l'enverra sous forme de courrier. Une suggestion comment cela peut-il être fait?

EDIT:
Ce gridview contient des œuvres quotidiennes pour le personnel (ndlr) chaque membre du personnel a 'n' nombre d'œuvres. J'ai donc généré dynamiquement un gridview dans une boucle foreach. Comment cela peut-il être fait?

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

et 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); 
    } 
    ... 
} 
+0

ce que sur la création d'une table HTML en utilisant StringBuilder? – CoderHawk

+0

@sandy j'ai un datatable qui sera assigné à la source de données gridview. –

+0

@Pandiay Chendur - pouvez-vous expliquer, comment le déclenchement est fait dans quartz.net? appelez-vous une page Web ou déclenchez-vous un assemblage? – CoderHawk

Répondre

0

Am un peu incertain si je comprends bien votre exigence correctement, mais vous pouvez créer un gridview dynamiquement à partir du code en utilisant

Gridview myGrid = new GridView() 

aussi longtemps que vous avez référencé le système Espace de noms .Web.UI de cette classe.

En outre, le GridView a une méthode

public virtual void RenderControl(HtmlTextWriter writer) 

que vous pouvez utiliser pour obtenir un HtmlTextWriter avec le Grids HTML que vous pouvez transmettre à votre classe emailing

0

De vous modifier - Je suppose vous voulez créer du contenu html ou gridview dans la méthode SendMail(), n'est-ce pas?

le cas échéant, vous pouvez choisir la méthode suivante

  • Créer une page ASPX
  • mettre votre gridview en elle et se lier avec datatable
  • Créer HttpWebRequest objet et appeler nouvellement créé page ASPX
  • lire le contenu en utilisant HttpWebResponse
  • utiliser ce contenu pour envoyer un message.

voici quelques articles qui vous aideront à HttpWebRequest et HttpWebResponse

Working with HttpWebRequest and HttpWebResponse in ASP.NET
HttpWebResponse Class
HttpWebRequest Class