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);
    }
    ...
}
War es hilfreich?

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

erstellen
Gridview 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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top