שאלה לגבי -Data Grid?

hirsh3

New member
שאלה לגבי -Data Grid?

שלום לכולם! אני רוצה להוסיף Button Link ל-Data Grid ,אבל לא Button Link של Select,Insert,Update וכו' אני רוצה להוסיף Button Link אלחץ עליו ב-Data Grid אעבור לדף אחר (אבל לא זאת הבעיה) תודה וחג שמח לכולם.
 

YardenST

New member
אני רוצה להבין,

הbutton link שלך הוא מיעוד לגשת לפונקציה מסוימת? או פשוט לשמש כלינק?
 

hirsh3

New member
מיועד לגשת ל-User Control אחר.....

כן, לפונקציה תודה וחג שמח
 
תודה אבל ,לא לזאת הכוונה

היא אמרה שהיא רוצה לגשת לפונקציה של הbuttonlink, וכפי שהסברתי יש עם זה בעייה.
 
נזכרתי במשהו שאולי יעזור

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

קודם כל הלחיצה על linkbutton ביעבעה (השתמשתי ItemCommand) אבל לא ניתן לגשת לbuttonlink (אירוע הצליח להתרחש אבל כשאני שואל עם המקור הוא buttonlink אז הוא לא נכנס if), כמו כן העלמתי את הif וניסיתי לשלוף מאפיין של הbuttonlink וזה יצר לי בעייה. ,בדקתי את הgettype של המקור ומסתבר שהמקור הוא לא הbuttonlink אלא זה אותו פקד שהכיל אותו(במקרה שלי זה הrepeter).
 

gilad g

New member
לא,

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

gilad g

New member
../images/Emo52.gif

לא ראיתי את התיקון...
מה הכוונה ב"לגשת ל-User Control
" מה רוצים להריץ
 

hirsh3

New member
אתם אנשים טובים......

ראשית תודה על ההתייחסות שנית כוונתי היתה שכאשר אלחץ על ה-Link Button אפעיל Event שבעזרתו אעבור ל- User Control לא הבנתי מה נותנת לי הפונקציה FindControl? חג שמח
 

hirsh3

New member
פתרתי את הבעיה

ב-properties של ה-Data Grid ניתן להפעיל פונקציה כלשהי ע"י מעבר ל-Events ושם ב-ItemCommand ניתן לרשום את שם הפונקציה ואז פשוט לכתוב מה שרוצים.......... אז יום נעים ושקט לכולם.
 
נראה לי שאנחנו באותה בעייה

אני מבין שאת מתכוונת שעל כל שורה בdatagrid צמוד אליו יהיה button link, אני מקווה שלא טעיתי בהנחה כי על זה אני כותב, קודם כל כדי ליישם את הbuttonlink תאלצי לעשות את זה בtemplate, ולא עם הבנייה האוטומטית של הדטהגריד, ועכשיו לבעייה המשותפת לפי ניסיוני -הbuttonlink שנוצר בתוך כל שורה ע"י (הלולאה הפנימית והנסתרת)של פקד הדטהגריד(אצלי זה ריפיטר אבל לא נראה לי משנה), לאותו button link שלמעשה שוכפל כמה פעמים בלולאה(כנראה גם הID-או שהוא לא התייחס אליו) -לא ניתן להתייחס אליו (הארועים לא עובדים ,לא ניתן לקרוא מאפיינים) ,בקיצור הוא כאילו לא נבנה ,למרות שרואים משהו. אשמח להערות והארות לבעייה ,תיקונים,ועצות.
 

gilad g

New member
כדי לפתור בעיות כאלו,

משתמשים באירוע ItemDataBound שנורה עבור כל אייטם ב-Repeater/DataList/DataGrid, אחרי שהוא נוצר ומתמלא בנתונים. לאחר מכן, משתמשים ב-FindControl כדי למצוא את הפקד שאליו רוצים לגשת. נניח ומדובר בכפתור:
private void myDg_ItemDataBound(object sender, DataGridItemEventArgs e) { Button btn = (Button)e.Item.FindControl("myButton"); // do whatever you want to do with btn. } ... <asp:DataGrid runat="server" id="myDg"> <Columns> <asp:TemplateColumn> <!-- bla bla bla --> <asp:Button id="myButton" runat="server" ... /> <!-- bla bla bla --> </asp:TemplateColumn> </Columns> </asp:DataGrid>​
זה לא הסינטקס המדויק, אבל אני מניח שהבנת את הרעיון
 
יצאתי../images/Emo163.gif , תודה רבה../images/Emo51.gif../images/Emo24.gif

זה מה שקורה כשאני ממהר ולא שם לב לארועים שהתגללו לפניי! לפחות למדתי לקח.
 
סליחה ,נראה לי שהטעתי אותך../images/Emo52.gif

מסתבר שהארוע הזה נורה:
The ItemDataBound event is raised after an item is data bound to the DataGrid control. This event provides you with the last opportunity to access the data item before it is displayed on the client. After this event is raised, the data item is nulled out and no longer available.​
מסתבר שזה כן הitem_command
אני פשוט לא השתמשתי איתו נכון, השתמשתי עם האובייקט(המקור) במקום הארגומנטים שלו(בד"כ זה הe) ולכן הייתה לי בעייה, אז העיקרון שהצגת נכון אבל עם האירוע שציינתי, סליחה על ההטעייה, לפחות לא נשכח את זה להרבה זמן.
 
הנה הקישור יש שם דוגמה יפה

The ItemCommand event is raised when any button is clicked in the DataGrid control. This event is commonly used to handle buttons controls with a custom CommandName value, such as Add, in the DataGrid control.
 
למעלה