créer dynamiquement un gridview à partir d'un fichier de classe (.cs)
-
27-09-2019 - |
Question
Je veux créer une forme de gridview une classe et d'envoyer ce gridview comme courrier. Je sais que la partie de diffusion, mais comment créer un gridview à partir d'un fichier de classe sans utiliser un fichier ASPX.
Je le fais parce qu'une méthode est appelée à une heure programmée en utilisant quartz.net et cette méthode va créer un gridview et l'envoyer comme courrier. Toute suggestion comment il peut ê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érer dynamiquement une gridview dans une boucle foreach. Comment ça peut se faire?
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);
}
...
}
La solution
Je recommande la création d'une table HTML à l'aide StringBuilder plutôt que de créer GridView.
Voici un poste similaire Convertir DataTable au Tableau HTML
Autres conseils
suis 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 fait référence à l'espace de noms System.Web.UI de cette classe.
En outre, le procédé a un GridView
public virtual void RenderControl(HtmlTextWriter writer)
que vous pouvez utiliser pour obtenir un HtmlTextWriter avec le HTML Grids que vous pouvez transmettre à votre classe emailing
De vous modifier - Je suppose que vous voulez créer du contenu html ou gridview dans la méthode SendMail (), à droite
?Dans ce cas, vous pouvez choisir la méthode suivante
- Créer une page ASPX
- mettre votre gridview en elle et se lient avec datatable
- Créer un objet HttpWebRequest et appel nouvellement créé page ASPX
- lire le contenu en utilisant HttpWebResponse
- utiliser ce contenu à envoyer des messages.
voici quelques articles qui vous aideront à HttpWebRequest et HttpWebResponse
travail avec HttpWebRequest et HttpWebResponse dans ASP.NET
HttpWebResponse classe
HttpWebRequest classe