Динамически создать сетку из файла класса (.cs) - PullRequest
0 голосов
/ 11 августа 2010

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

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

EDIT:
Это сеточное представление содержит ежедневные работы для персонала (то есть) каждый персонал имеет 'n' количество работ. Поэтому я динамически генерирую 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);
    }
    ...
}

Ответы [ 3 ]

2 голосов
/ 11 августа 2010

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

Вот аналогичный пост Преобразование DataTable в таблицу HTML

0 голосов
/ 11 августа 2010

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

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

  • Создать страницу aspx
  • поместите в нее свой gridview и свяжите его с датируемым
  • Создать объект httpWebrequest и вызвать вновь созданную страницу aspx
  • читать содержимое, используя HttpWebResponse
  • используйте этот контент для отправки почты.

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

Работа с HttpWebRequest и HttpWebResponse в ASP.NET
HttpWebResponse Class
Класс HttpWebRequest

0 голосов
/ 11 августа 2010

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

Gridview myGrid = new GridView() 

до тех пор, пока вы ссылаетесь на пространство имен System.Web.UI из этого класса.

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

    public virtual void RenderControl(HtmlTextWriter writer)

, который вы можете использовать, чтобы получить HTMLTextWriter с HTML-сетками, который затем можете передать классу электронной почты

...