קבלת קוד ה HTML של costume control

adventureboy

New member
קבלת קוד ה HTML של costume control

היי, יש לי costume controls ב asp.net 2 שבניתי והוא מבצע שאילתא לבסיס הנתונים ומציג את הנתונים על המסך מסודרים ב HTML שכתבתי בתוכו. אני עכשיו רוצה לשלוח את אותו HTML עם הנתונים באימייל ולשם כך יצרתי משתנה string שיכיל את תוכן ההודעה. האם יש איזושהי דרך שאני יכול לקבל בצורה תכנותית את הקוד המתקבל מה-costume control שלי או שאני צריך לכתוב את כל התהליך מחדש?
 

עידו פ

New member
אתה יכול להפעיל את מתודת ה-Render

של הפקד ולשלוח לה כפרמטר stream שלתוכו יוכנס כל ה-HTML ולאחר מכן פשוט לקחת את ה-ToString שלו ולקבל את מחרוזת ה-HTML. זה לא תמיד עובד, מאחר ותלוי איך הפקד הזה בנוי. בכל אופן, אולי כדאי לשקול להפריד את הלוגיקה שמייצרת את ה-HTML מהפקד מאחר ונשמע שהתוצר של הלוגיקה יכול להיות רלוונטי גם לנושאים אחרים. אופציה אחרת היא לבנות דף ASPX שמכיל אך ורק את הפקד ולשלוח לינק לדף הזה.
 

Justin Angel

New member
קה פרובלמה מואי צ'יקיטה?

StringBuilder SbWithControlHTML = new StringBuilder(); StringWriter SwForWriter = new StringWriter((SbWithControlHTML)); HtmlTextWriter WriterToRenderTextInto = new HtmlTextWriter(SwForWriter); label1.RenderControl(WriterToRenderTextInto); Response.Write(SbWithControlHTML.ToString());​
ביססנו StringBuilder שמאפשר לנו לבנות מחרוזות דינמיות (כמו Page.Response.OutputStream שעליו נבנה הדף שלנו ברנדור אמיתי) יצרנו שני מחלקות המבוססות אחת על השנייה כדי לאפשר כתיבה טקסטואלית של HTML ורנדרנו לתוכן את הטקסט. בסופו של דבר הוא הגיע לתוך ה-StringBuilder שלנו. כמו שעידו אמר, אם יש משמעות לרנדור של הפקד, יתכן ומומלץ להוציא את מלאכת הרכבת ה-HTML לפקד Generator חיצוני עם מתודה סטטית שניתן לפנות אליה ממספר מקומות אשר תחזיר את ה-HTML לפקד.
 
למעלה