Вопрос

Я хочу создать GRIDVIEW составляю класс и отправить эту GRIDVIEW в качестве почты. Я знаю рассылку, но как создать GRIDVIEW из файла класса без использования файла ASPX.

Я делаю это, потому что метод будет вызван в запланированное время с использованием Quartz.net, и этот метод создаст GRIDVIEW и отправить его по почте. Любое предложение, как это можно сделать?

РЕДАКТИРОВАТЬ:
Эта GRIDView содержит ежедневные работы для сотрудников (т. Е.) Каждый персонал имеет число работ. Поэтому у меня динамически генерируют GridView внутри петли FOREACH. Как это можно сделать?

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

и 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);
    }
    ...
}
Это было полезно?

Решение

Я бы порекомендовал создать таблицу HTML, используя StringBuilder, а не создавать GRIDVIEW.

Вот похожий пост Преобразовать DataTable в таблицу HTML

Другие советы

Я немного не уверен, если я понял ваше требование правильно, но вы можете динамически создавать GridView от кода, используя

Gridview myGrid = new GridView() 

Пока вы ссылались на пространство имен System.Web.ui из этого класса.

Кроме того, GridView имеет метод

    public virtual void RenderControl(HtmlTextWriter writer)

Что вы можете использовать, чтобы получить HTMLTextWriter с помощью GRIDS HTML, который вы можете перейти к вашему классу электронной почты

От вас отредактируйте - я предполагаю, что вы хотите создать HTML контент или GridView в методе sendmail (), верно?

Если это так, вы можете выбрать следующий метод

  • Создать страницу ASPX
  • Поместите свой GridView в него и свяжитесь с DataTable
  • Создайте объект httpwebrequest и вызовите вновь созданную страницу ASPX
  • Прочитайте контент, используя httpwebresponse
  • Используйте этот контент для отправки почты.

Вот некоторые статьи, которые помогут вам с httpwebrequest и httpwebresponse

Работа с httpwebrequest и httpwebresponse в ASP.NET
Класс httpwebresponse
Httpwebrequest Класс

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top