שאלה להבנה ב asp.net

  • פותח הנושא idv
  • פורסם בתאריך

idv

New member
שאלה להבנה ב asp.net

אני יוצר שני dropdownlist - (ddl1,ddl2( באופן דינמי בקוד. שניהם מקבלים listitemcollection דרך WS לכל אחד מהם קשרתי פונקציה שפועלת באירוע selectedindexchanged. אני משנה את הבחירה באחד מהם והכל תקין. אני משנה את הבחירה בשני והפונקציה של הראשון מופעלת גם היא. הקוד:
Call ConnectDDL(ddl1) panel1.Controls.Add(ddl1) Call ConnectDDL(ddl2) panel2.Controls.Add(ddl2)​
connectddl היא פונקציה להוספת הנתונים ל ddl. אם אני מחליף בין השורה הראשונה לשניה ובין השלישית לרביעית הכל מסתדר. השאלה היא למה? אם הבנתי נכון זה בגלל שיצירת קונטרול באופן דינמי "מפריע ל viewstateoptimization" השאלה איך בדיוק?
 
תשובה

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

idv

New member
אני יוצר אותם ב pageload

אין בעיה לדבג את התקלה ואין בעיה עם הערכים. יש רק טעות קטנה בשאלה שלי - הקוד כמו שהוא מוצג תקין, כשאני הופך בין השורה הראשונה לשניה ובין השלישית לרביעית, כלומר קודם מכניס את הDDL לפאנל ורק אח"כ נותן לו נתונים, התופעה מתרחשת (בחירה בערך ב DDL ואז בחירה בערך ב DDL השני מקפיצה גם את הפונקציה selectedindexchanged של הראשון)
 

droren

New member
../images/Emo26.gif

תראה מה נוצר לך בדף והאם השמות הם שווים יתכן וזאת הבעיה
 

idv

New member
בדקתי הכל ההבדל היחידי בין

הכל תקין לבין העובדה שהפונקציה של הראשון קופצת גם כשבוחרים מהשני היא מתי אני מבצע את ה databind, לפני שאני מכניס את הDDL לפאנל או אחרי
 
למעלה