2010-08-11 6 views
0

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

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

EDIT:
Этот 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); 
    } 
    ... 
} 
+0

, что о создании HTML таблицы с помощью StringBuilder? – CoderHawk

+0

@sandy У меня есть datatable, который будет назначен для gridview datasource. –

+0

@ Пандиай Чендур - можете ли вы объяснить, как запускается в quartz.net? вы вызываете какую-либо веб-страницу или запускаете сборку? – CoderHawk

ответ

0

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

Gridview myGrid = new GridView() 

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

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

public virtual void RenderControl(HtmlTextWriter writer) 

, которые вы можете использовать, чтобы получить HtmlTextWriter с Сетки HTML, которые затем можно передать на ваш Emailing класса

0

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

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

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

здесь некоторые статьи, которые помогут вам с HttpWebRequest и HttpWebResponse

Working with HttpWebRequest and HttpWebResponse in ASP.NET
HttpWebResponse Class
HttpWebRequest Class

Смежные вопросы