Динамически создать GRIDVIEW из файла класса (.cs)
-
27-09-2019 - |
Вопрос
Я хочу создать GRIDVIEW составляю класс и отправить эту GRIDVIEW в качестве почты. Я знаю рассылку, но как создать GRIDVIEW из файла класса без использования файла ASPX.
Я делаю это, потому что метод будет вызван в запланированное время с использованием Quartz.net, и этот метод создаст GRIDVIEW и отправить его по почте. Любое предложение, как это можно сделать?
РЕДАКТИРОВАТЬ:
Эта 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);
}
...
}
Решение
Я бы порекомендовал создать таблицу HTML, используя StringBuilder, а не создавать GRIDVIEW.
Вот похожий пост Преобразовать DataTable в таблицу HTML
Другие советы
Я немного не уверен, если я понял ваше требование правильно, но вы можете динамически создавать GridView от кода, используя
Gridview myGrid = new GridView()
Пока вы ссылались на пространство имен System.Web.ui из этого класса.
Кроме того, GridView имеет метод
public virtual void RenderControl(HtmlTextWriter writer)
Что вы можете использовать, чтобы получить HTMLTextWriter с помощью GRIDS HTML, который вы можете перейти к вашему классу электронной почты
От вас отредактируйте - я предполагаю, что вы хотите создать HTML контент или GridView в методе sendmail (), верно?
Если это так, вы можете выбрать следующий метод
- Создать страницу ASPX
- Поместите свой GridView в него и свяжитесь с DataTable
- Создайте объект httpwebrequest и вызовите вновь созданную страницу ASPX
- Прочитайте контент, используя httpwebresponse
- Используйте этот контент для отправки почты.
Вот некоторые статьи, которые помогут вам с httpwebrequest и httpwebresponse
Работа с httpwebrequest и httpwebresponse в ASP.NET
Класс httpwebresponse
Httpwebrequest Класс