יום שלישי, 26 ביולי 2011

שינוי מקור נתונים של טבלת GridView

ASP
לאחרונה נתקלתי בצורך ליצור טבלת gridview שמקבלת בהתחלה מקור נתונים אחד -
למשל טבלה של רשימת שמות עם הפרטים שלהם, ובבחירה של אחת מהשורות ע"י כפתור Select - מחליפה את מקור הנתונים ומציגה טבלה אחרת עם עמודות אחרות.



אז ככה - קודם כל צריך לשייך את ה-GridView למקור נתונים אחר, ו'לנקות' את העמודות הקיימות:
GridView1.DataSourceID = "AccessDataSource2";
GridView1.Columns.Clear(); 

לאחר מכן להוסיף עמודות חדשות:
BoundField bf1 = BuildBF("שם עמודה""colNameDataField", "sortExp");
GridView1.Columns.Add(bf1); 


להלן הקוד של הפונקציה (שיטה) שכתבתי בשביל הצבת עמודות חדשות:
BoundField BuildBF(string headerText, string dataField, string sortExpression) 
 { 
        BoundField bf = new BoundField(); 
         bf.HeaderText = headerText; 
         bf.DataField = dataField; 
         bf.SortExpression = sortExpression; 
         return bf
 }
boundField יוצר עמודה.
אפשר להבין ש-HeaderText זה הטקסט שיהיה שם העמודה,
DataField זה שם השדה במקור הנתונים שנלקח שישויך לעמודה הזאת,
SortExpression זה שיטת המיון של העמודה (או הטבלה) - האמת היא שקצת מיותר בד"כ, אבל שיהיה.


עוד 'עמודה' שאפשר להוסיף היא כפתור - כפתור מבין הסוגים Delete , Select ,
או כפתור Edit , Update , Cancel .

CommandField cf = new CommandField();
cf.ButtonType = ButtonType.Button;
cf.ShowSelectButton = true;
cf.SelectText = "בחר שורה";
GridView1.Columns.Add(cf); 
את שורה השלישית אפשר להחליף לסוג הכפתור שרוצים, פשוט צריך להתחיל לכתוב את שם המאפיין show ובתוכנה (Visual Studio) תופיע הרשימה של כל האפשרויות.
אפשר כמובן לשחק עם זה ולנסות מאפיינים אחרים.
השורה האחרונה בקוד המוצג היא פעולת ההוספה של הכפתור ל-gridView.

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


אין תגובות:

הוסף רשומת תגובה