クラス(.cs)ファイルからグリッドビューを動的に作成します
-
27-09-2019 - |
質問
クラスを形成してGridViewを作成し、そのGridViewをメールとして送信したいと思います。私は郵送部品を知っていますが、ASPXファイルを使用せずにクラスファイルからグリッドビューを作成する方法。
メソッドはQuartz.netを使用してスケジュールされた時間に呼び出され、そのメソッドはGridViewを作成してメールとして送信するため、そうしています。それがどのようにできるか何か提案はありますか?
編集:
このグリッドビューには、各スタッフが「n」の作品を「n」しているスタッフ(すなわち)のための毎日の作品が含まれています。そのため、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);
}
...
}
解決
GridViewを作成するのではなく、StringBuilderを使用してHTMLテーブルを作成することをお勧めします。
これが同様の投稿です データテーブルをHTMLテーブルに変換します
他のヒント
あなたの要件を正しく理解しているかどうかは少し不明ですが、コードを使用して動的にグリッドビューを作成できます
Gridview myGrid = new GridView()
System.web.uiの名前空間を参照している限り、そのクラスの名前空間。
また、GridViewにはメソッドがあります
public virtual void RenderControl(HtmlTextWriter writer)
グリッドHTMLを使用してHTMLTextWriterを取得するために使用できます。
編集から - sendmail()メソッドでHTMLコンテンツまたはgridViewを作成したいと思いますか?
その場合、次の方法を選択できます
- ASPXページを作成します
- GridViewを入れて、Datatableでバインドします
- httpwebrequestオブジェクトを作成し、新しく作成されたASPXページを呼び出します
- httpwebreaponseを使用してコンテンツをお読みください
- このコンテンツを使用してメールを送信します。
httpwebrequestとhttpwebreaponseを使用するのに役立つ記事をいくつか紹介します
asp.netでhttpwebrequestおよびhttpwebreaponseを使用しています
httpwebreasponseクラス
httpwebrequestクラス