יצירת טבלה ב code behind

svoivandim

New member
יצירת טבלה ב code behind

אני יכול לדוגמא ליצור פונקצית java script באירוע onload ואז להתייחס אל פונקציית java script כאילו היתה כתובה hard coded לדוגמא:
private void Page_Load(object sender, System.EventArgs e) { // Put user code to initialize the page here CreatejavaScriptCode(); } private void CreatejavaScriptCode() { string popupScript = "<script language='javascript'> function js(){" + "window.open('test_java_script.aspx', 'CustomPopUp', " + "'width=200, height=200, menubar=yes,')" + "}</script>"; Page.RegisterStartupScript("PopupScript", popupScript); }​
אבל איך אני יכול ליצור טבלת HTML בcode behind באירוע onload ואז להציג את הטבלה בדף עצמו?
 

ht2006

New member
אפשר ב-code behind של דף aspx

במקרה שהטבלה היא דינמית: HtmlTable table = new HtmlTable(); ואז ניתן גם להוסיף rows ולהוסיף להם cell כך:
HtmlTableRow row = new HtmlTableRow(); table.Rows.Add(row); HtmlTableCell cell = new HtmlTableCell(); row.Cells.Add(cell); |סקוד | זה יהיה ב-page_Load בפעם הראשונה כשהדף נטען (!isPostback) בפעמים האחרות הדף ייטען ע"י Session ששומר את הנתונים או אובייקטים שנשמרים ב-session אולי ניתן לכתוב משהו שעושה את אותה פעולה ב javascript מקווה שעזרתי, כי לא ממש הבנתי את כוונתך בהצלחה !!!​
 

svoivandim

New member
משאני מנסה ליישם זה הטכניקה

שמשתמשים בה באתרים כמו : מדס , יד2 ממלאים טבלה בנתונים,וכאשר בוחרים שורה מסוימת נפתח חלון(DIV) עם נתונים נוספים, אני חושב שניתן ליישם את זה עלידי יצירה דינמית של טבלה בcode behind לכן הבעיה הראשונה שנתקלתי בה איך אני יוצר טבלת HTML עם נתונים שאני לוקח מ dataset ב code behind בruntime
 

pintyo

New member
אני משניח שאתה משתמש ב AJAX

יותר נכון - באחת מהצורות שלו. אם אתה מתכוון להחליף את ה INNERHTML של DIV מסויים בטבלא שתיצור אז צור gridView (או כל קונטרול אחר), תמלא אותו בנתונים שתצטרך ואז, תחזיר ל client את תוצאת הקוד הבא:
System.IO.StringWriter stringWriter = new System.IO.StringWriter(); System.Web.UI.HtmlTextWriter htmlWriter = new System.Web.UI.HtmlTextWriter(stringWriter); yourGridView.RenderControl(htmlWriter); return stringWriter.ToString();​
אבל אם אתה יכול להשתמש בAJAX מבית מיקרוסופט (ATLAS לשעבר) אז עדיף לך - כך תוכל פשוט לעטוף את ה DIV שלך ב updatePanel ולבצע postback תמים למילוי ה GRID
 

pintyo

New member
אז תתקין AJAXPRO

בנוגע למה ששאלת כתגובה לשרון - אתה צריך להכניס את הנתונים שיש לך ב dataset לקונטרול קיים אשר מתרנדר בסוף לטבלא (gridview לדוגמא). כמובן שאתה יכול ליצור את הטבלא לבד ע"י ריצה על כל הרשומות בלולאה והוספת תאים לטבלא, אבל זו סתם עבודה סיזיפית. לגבי DIV מוסתר(הפתרון ששרון הציגה - אשר קיים בהרבה מאוד אתרים) - יש לו יתרון וחיסרון: היתרון - כל הנתונים כבר על הדף, ולכן הצגה/הסתרה של הנתונים נערך בclient, ולאחר שהדף עלה התהליך מהיר. החסרון - אם יש הרבה נתונים בכל DIV אז כל פעם תשלח אל הclients שלך משקל גדול , שייתכן ומיותר - יכול להיות שהמשתמשים לא ירצו לראות את תכולת כל ה DIV-ים, מה גם שתצטרך להגביל את מספר הרשומות שאתה מראה בכל דף ע"מ שלא ישקול יותר מידי - כדי שיעלה מהר. קח בחשבון שהפתרון ה AJAX-י - שהינו להביא את הנתונים עבור כל רשומה שנלחצת גם אינו מושלם - ייצור המתנה קטנה בהבאת כל נתון מה SERVER
 

svoivandim

New member
למען האמת,אני לא כל כך

בקיא בכל התוספות "המתקדמות" של asp.net ג והפרוייקט שלי נכתב בasp.net 1.1 ואין לי ניסיון רב עם java script-html ובטח שלא עם ajax ,לכן חשבתי ללכת על הפתרון "הטבעי" יותר עלמנת לא להסתבך, בעתיד אני אשדרג את עצמי לכיוונים הללו
 

svoivandim

New member
זהו, אני חושב שמשעשית בדוגמא של

הלינק זה משאני מחפש, אבל השאלה היא כזאת , יהיה לי איזשהו DATASET שיכיל נתונים מDB שאני רוצה להזיג בצורה מסויימת "כמו באתר של מדס", השאלה היא איך אני מציג את הנתונים הללו מתוך הDATASET בCODE BEHIND לתוך משהו שנראה לי כמו טבלה, אני אפילו לא בטוח איך זה מסודר אצלם באתר, כלומר אני צריך לרוץ בלולאה בתוך CODE BEHIND ובעזרת JAVA SCRIPT ליצור HTML עם DIV , האם אני בכיוון הנכון?
 

24sharon

New member
מכניס את כל העיצוב

לתוך ITEMTEMPLETE, ואין בעיה לעשות את זה. אפילו לא צריך להתעסק עם CODE BEHIND, אם אתה מתעסק עם OBJECT DATA SOURCE מסוג כל שהוא. רק בגריד אתה מציין את אופן 'חלוקת התפקידים' השונים. בהצלחה!
 

svoivandim

New member
אני מבין שאתה מציע לי להשתמש

בפקד datagrid אבל כל הענין הוא שאני רוצה להמנע מלהשתמש בפקד datagrid אלא, בDIV
 

24sharon

New member
תעלה פיסת קוד קלה

ללא פתיחה, איך אתה מציג את הנתונים, אח"כ יהיה אפשר להוסיף לו את האפשרות של הצגה והסתרת DIV.
 
למעלה