loadControl من تطبيق Windows
-
28-09-2019 - |
سؤال
هل من الممكن تحميل Control في تطبيق Windows؟
لديّ جيل بريد إلكتروني كويب ، لكنني أريد نقله إلى خدمة Windows للحصول على النشرة الإخبارية الشهرية.
يتم تنفيذ رسائل البريد الإلكتروني الآن باعتبارها UserControls ، وبهذه الطريقة يمكن لـ HTML الشخص تعديل Look & Feel بسهولة.
يشبه تطبيق العرض الحالي:
StringBuilder sb = new StringBuilder(4000);
StringWriter sw = new StringWriter(sb);
HtmlTextWriter htw = new HtmlTextWriter(sw);
Page page = new Page();
EmailTemplateBase emailCtrl = (EmailTemplateBase)page.LoadControl(
"Controls/EmailTempaltes/Template.ascx");
// Exception here
emailCtrl.DataContext = dataContext;
emailCtrl.Parameter = parameter;
emailCtrl.RenderMode = renderMode;
emailCtrl.DataBind();
emailCtrl.RenderControl(htw);
subject = emailCtrl.Subject;
string MessageText = sb.ToString().Replace("\t", "").Replace(Environment.NewLine, "");
return MessageText;
المحلول
كان الحل بالنسبة لي هو استدعاء خدمة الويب ، التي تمكنت من إنشاء HTML من .ascx.
- تمرير المعلمات اللازمة إلى خدمة الويب
- في WebService ، قم ببناء صفحة جديدة ، من LoadControl
- اضبط جميع المعلمات
- هل تقديم إلى StringBuilder.
يمكنك رؤية التعليمات البرمجية المعنية.
نصائح أخرى
بدلا من ال LoadControl
الطريقة المستخدمة في ASP.NET ، يمكنك استخدامها Controls.Add
طريقة التحكم الوالد. فقط أضف لوحة لتكون الوالد ثم:
UserControl uc1 = new UserControl //this is your usercontrol
Panel1.Controls.Add(uc1);
لا تنتمي إلى StackOverflow