dynamisch erstellen eine Gridview aus einer Klasse (CS-) Datei
-
27-09-2019 - |
Frage
Ich möchte eine Klasse ein Gridview-Formular erstellen und diese als gridview Mail. Ich weiß, dass der Mailing-Teil, sondern wie ein Gridview von einer Klassendatei zu erstellen, ohne eine aspx-Datei.
Ich tue dies, weil eine Methode zu einem bestimmten Zeitpunkt mit quartz.net aufgerufen werden und das Verfahren wird eine Gridview erstellen und als Mail versenden. Jeder Vorschlag, wie es getan werden kann?
EDIT:
Diese gridview enthält tägliche Arbeiten für Mitarbeiter (dh) jeder Mitarbeiter hat ‚n‘ Anzahl von Werken. Also ich dynamisch eine Gridview innerhalb einer foreach-Schleife erzeugen haben. Wie es kann getan werden?
using Quartz;
public class SendMailJob : IJob
{
public void Execute(JobExecutionContext context)
{
SendMail();
}
private void SendMail()
{
// put your send mail logic here
}
}
und 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);
}
...
}
Lösung
Ich würde empfehlen, eine HTML-Tabelle erstellen mit Stringbuilder statt Gridview zu schaffen.
Hier ist eine ähnliche Position Convert Datatable in HTML-Tabelle
Andere Tipps
Am etwas unsicher, ob ich Ihre Anforderung richtig verstanden haben, aber Sie können einen Gridview dynamisch von Code mit
erstellenGridview myGrid = new GridView()
, solange Sie den System.Web.UI-Namespace aus dieser Klasse verwiesen haben.
Auch hat das Gridview ein Verfahren
public virtual void RenderControl(HtmlTextWriter writer)
, die Sie bekommen eine Htmltextwriter mit dem Grids HTML verwenden können, die Sie dann an Ihre E-Mail-Klasse weitergeben können
Von Ihnen bearbeiten - ich nehme an, Sie möchten HTML-Inhalt oder gridview in Sendmail () -Methode, rechts
schaffen?Wenn ja, können Sie die folgende Methode entscheiden
- Erstellen Sie eine aspx Seite
- setzen Sie Ihre Gridview in ihm und binden Sie es mit Datatable
- Erstellen Sie HttpWebRequest Objekt und Aufruf neu erstellt aspx Seite
- Lesen Sie den Inhalt mit HttpWebResponse
- verwenden diesen Inhalt send mail.
Hier sind einige Artikel, die Ihnen helfen mit httpwebrequest und HttpWebResponse
Arbeiten mit HttpWebRequest und HttpWebResponse in ASP.NET
HttpWebResponse Klasse
HttpWebRequest Klasse