1573
צפיות
צפיות
2
תשובות
תשובות
עדכון GridView בעקבות DropDownList
שלום לכולם,
אני מנסה לעדכן את הGridView לאחר בחירה של המשתמש באחת האפשרויות שקיימות בDropDownList.
הGridView מקושר לDB עם DataSource .
איך אני משנה את השאילתה של הDataSource בהתאם לבחירה של המשתמש בDropDownList?
תודה !!
2 תשובות
ככה אני כתוב את הקוד ואתן הסבר –
מקווה שעזרתי, יש סיכוי שיש לי שגיאות כתיב כי כתבתי את זה בכתבן ולא בסטודיו
נגדיר רשימה יורדת כך:
<asp:DropdownList ID="DDL_Users" runat="server" AutoPostback="true" OnSelectedItemChange="UpdateGridView" />
שים לב,
AutoPostback – מגדיר אם שינוי בחירה ברשימה יבצע שליחת טופס.
OnSelectedItemChange – מגדיר איזה פונקציה תרוץ בעת ביצוע שינוי בחירה ברשימה
CODE BEHINED –
sender, e – שווים לריק במידה ולא נשלח מידע אחר
אנו עושים זאת ע"מ שנוכל לגשת לפונקציה גם דרך כפתור (sender)
וגם ע"י קריאה מהקוד עצמו.
private void UpdateGridView(object sender=null, Eventargs e=null)
{
List<Users> LiU = new List<Users>();
LiU – הרשימה אותה אנחנו מקשרים לגריד
int UserID = DDL_User.SelectedValue;
UserID – אנחנו לקוחים את הערך של האופציה שנבחרה ברשימה היורדת שיצרנו
LiU = GetUsers();
כאן אתה צריך לאכלס את הרשימה בכל המשתמשים שלך (במידה וכך אתה רוצה להתחיל)
if(sender != null)
LiU = Li.Where(x=> x.ID == UserID).ToList();
כאן אנחנו בודקים אם הפונקציה נקראה ע"י כפתור או ע"י הקוד –
במידה והשולח אינו ריק אזי הקריאה נשלחה ע"י כפתור אנחנו מבצעים שאילתת סינון לפי האידי או כל נתון אחר לפיו אתה מעוניין לסנן
GV_Users.Datasource = LiU;
GV_Users.Databind();
ולאחר מכן לטעון את הגריד מחדש ..
}
protected / public ולא private