2010-08-11 75 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