سؤال

أرغب في إنشاء GridView من فئة وإرسال هذه الشبكة كبريد. أعرف الجزء البريدي ولكن كيفية إنشاء GridView من ملف فئة دون استخدام ملف ASPX.

أقوم بذلك لأنه سيتم استدعاء طريقة في وقت محدد باستخدام quartz.net وستقوم هذه الطريقة بإنشاء 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 مع شبكات HTML والتي يمكنك بعد ذلك نقلها إلى فصل البريد الإلكتروني الخاص بك

منك تحرير - أفترض أنك تريد إنشاء محتوى HTML أو GridView بطريقة SendMail () ، أليس كذلك؟

إذا كان الأمر كذلك ، يمكنك اختيار الطريقة التالية

  • إنشاء صفحة ASPX
  • ضع شبكتك فيه وربطها باستخدام DataTable
  • إنشاء كائن httpwebrequest واتصل صفحة ASPX التي تم إنشاؤها حديثًا
  • اقرأ المحتوى باستخدام httpwebrosponse
  • استخدم هذا المحتوى لإرسال البريد.

فيما يلي بعض المقالات التي ستساعدك في httpwebrequest و httpwebropsons

العمل مع httpwebrequest و httpwebropsons
HTTPWebResponse فئة
httpwebrequest فئة

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top