USER CONTROL EVENTS - ASPX

efratoio

New member
USER CONTROL EVENTS - ASPX

טוב ה טיפל'ה מסובך: יש לי קונטרול שיצרתי, המקבל hashtable, ועבור כל אובייקט hashtable יוצר כפתור, עם attributes מהאובייקט HASH:
protected void Page_Load(object sender, EventArgs e) { foreach(DictionaryEntry ent in titles) { Button btn = new Button(); btn.Attributes.Add((string)ent.Key, (string)ent.Value); btn.Text = (string)ent.Value; btn.Width = 200; this.Controls.Add(btn); } }​
עד לכאן הכל טוב ויפה. אבל... בדף שבו אני שמה את הקונטרול אני רוצה ליצור פונקציה שמקבלת את האירוע click מכל הכפתורים (שעדיין לא קיימים כשאני פורשת את הפקד) אני מנחשת שיש בטח איזה פקודה ביצירת פקד בSystem.Web.UI.UserControl שמאפשר לי לקבוע איזה פונקציה תהיה לאיזה אירוע. בכל מקרה, אם למישהו יש רעיון, או אם מישהו יודע שהסתבכתי כאן עם משהו שאין איך לפתור, אשמח לתשובה.
 

blue25

New member
פשוט

btn.Click += new EventHandler(btn_Click); void btn_Click(object sender, EventArgs e) { /* your code */ }​
 

efratoio

New member
זה לא באותה מחלקה.

יש שתי מחלקות : ascx (מחלקת הקונטרול) aspx (הwebform) עליו אני פורשת את הקונטרול. אני צריכה איזשהו event מובנה כדי לקשר בין btn_CLick של הקונטרול לבין האירוע שאני רוצה לעשוצ ב webform. תודה בכל מקרה. (יתכן שיש קשר ל - CommandEventHandler?)
 

efratoio

New member
התשובה - למי שזה מעניין אותו:

במחלקת הפקד:
protected void Page_Load(object sender, EventArgs e) { foreach(DictionaryEntry ent in titles) { Button btn = new Button(); //btn.Attributes.Add((string)ent.Key, (string)ent.Value); btn.Text = (string)ent.Value; btn.Width = 200; btn.CommandArgument = ent.Key.ToString(); btn.Command = command; this.Controls.Add(btn); } } private Hashtable titles; private CommandEventHandler command; public CommandEventHandler Command { set { command = value; } } public Hashtable Titles { set { titles = value; } }​
מחלקץ ה webform
MoviesLogic MG = new MoviesLogic(); protected void Page_Load(object sender, EventArgs e) { Titels3Control1.Titles = MG.GetTop3(); Titels3Control1.Command = new CommandEventHandler(Top3Click); } protected void Top3Click(object obj, CommandEventArgs e) { string search = (string)e.CommandArgument; }​
 

efratoio

New member
התשובה - למי שיש לו עדיין כוח ../images/Emo8.gif

מחלקת פקד:
protected void Page_Load(object sender, EventArgs e) { foreach(DictionaryEntry ent in titles) { Button btn = new Button(); //btn.Attributes.Add((string)ent.Key, (string)ent.Value); btn.Text = (string)ent.Value; btn.Width = 200; btn.CommandArgument = ent.Key.ToString(); btn.Command += command; this.Controls.Add(btn); } } private Hashtable titles; private CommandEventHandler command; public CommandEventHandler Command { set { command = value; } } public Hashtable Titles { set { titles = value; } }​
מחלקת webform:
MoviesLogic MG = new MoviesLogic(); protected void Page_Load(object sender, EventArgs e) { Titels3Control1.Titles = MG.GetTop3(); Titels3Control1.Command = new CommandEventHandler(Top3Click); } protected void Top3Click(object obj, CommandEventArgs e) { string search = (string)e.CommandArgument; }​
 
למעלה