2010-08-11 73 views
0

我想创建一个类的GridView并将该GridView作为邮件发送。我知道邮件的一部分,但是如何在不使用aspx文件的情况下从类文件创建一个GridView。从类(.cs)文件动态创建一个GridView

我这样做是因为一个方法将在预定的时间使用quartz.net调用,该方法将创建一个gridview并将其作为邮件发送。任何建议如何完成?

编辑:
这GridView控件包含了员工日常工作(即)每一个员工都有“N”的作品数量。所以我有一个foreach循环内动态生成一个gridview。如何做到这一点?

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

什么? – CoderHawk 2010-08-11 10:56:44

+0

@sandy我有一个数据表,将被分配给gridview数据源。 – 2010-08-11 10:58:16

+0

@Pandiay Chendur - 你能解释一下,quartz.net是如何触发的?你打电话给任何网页或触发集会? – CoderHawk 2010-08-11 11:20:39

回答

0

我有点不确定,如果我有你的要求,正确理解,但你可以动态地从代码中使用

Gridview myGrid = new GridView() 

只要你引用的系统创建一个gridview该类的.Web.UI命名空间。

而且,在GridView有一个方法

public virtual void RenderControl(HtmlTextWriter writer) 

,你可以用它来获得与电网HTML一个HtmlTextWriter的,然后可以传递到您的电子邮件收发类

0

从你的编辑 - 我认为你想在SendMail()方法中创建html内容或gridview,对吧?

如果是的话,你可以选择以下方法

  • 创建一个aspx页面
  • 把你的GridView中,并与数据表
  • 将其绑定创建HttpWebRequest对象,并调用新创建aspx页面
  • 使用HttpWebResponse阅读内容
  • 使用此内容发送邮件。

这里有一些文章,这将有助于你HttpWebRequest和httpwebresponse有关创建使用StringBuilder的一个HTML表格

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