gridview ב web

rachnat

New member
gridview ב web

איך ניתן להגדיר שהgridview יוצג גם אם הוא ריק. אמנם אם בהתחלה הוא מלא ותוך כדי הרצה נמחקות כל השורות, כותרת הgrid עדיין מוצגת, אבל אם מראש אין ערכים, הגריד לא מוצג כלל. אפשר לעשות משהו בנידון...?
 

Justin Angel

New member
קה פרובלמה מואי צ'יקיטה?

מדובר בפיצ'ר מאוד חזק של GridView שהשתנה מאז ימי ה-DataGrid של 1.1. בדוט נט 1.1 כל פעם של-DataGrid לא היה מידע להציג הוא היה מציג את ה-Header של הטבלה. מה שנראה מאוד מוזר כי יש לך כותרת לטבלה שאין בה שום תוכן. אם את רוצה לחזור לאותו מצב שהיה בדוט נט 1.1 תצטרכי להוסיף שורה חדשה וריקה למקור המידע של ה-GridView. כלומר, בסופו של דבר את כן תוסיפי שורת מידע כי אחרת באמת ה-GridView לא ירנדר את הכותרת. תתפסי את הרנדור של השורת מידע הזו ותקבעי שהיא לא תתרנדר אצל הלקוח.
protected void Page_Load(object sender, EventArgs e) { GridView1.DataSource = null; // GridView1.DataBind(); } protected void GridView1_DataBinding(object sender, EventArgs e) { if (GridView1.DataSource == null) { GridView1.DataSource = "x"; } } protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (GridView1.DataSource == "x") if (e.Row.RowType == DataControlRowType.DataRow) e.Row.Style.Add("display", "none"); }​
אפשרות נוספת היא להשתמש ב-EmptyDataText שזה טקסט שיוצג כאשר מקור המידע של ה-GridView. אפשר לכתוב שם משהו כמו "אין נתונים להציג" וזה לפי דעתי, מעביר ללקוח מסר הרבה יותר ברור מאשר כותרת של טבלה.
<asp:GridView ID="GridView1" runat="server" EmptyDataText="אין נתונים להציג"> </asp:GridView> protected void Page_Load(object sender, EventArgs e) { GridView1.DataSource = null; GridView1.DataBind(); }​
אפשרות שלישית ואחרונה היא להשתמש ב-EmptyDataTemplate. תעמדי על ה-GridView ב-Designer, תלחצי על החץ הקטן בצד ימין למעלה, תלחצי על Edit Templates ותבחרי את EmptyDataTemplate. במקום הזה תוכלי לעצב יותר לעומק את המידע שאת רוצה שהמשתמש יראה כאשר אין מידע להציג. כלומר, לכאן תוכלי להכניס גם פקדים ולא רק טקסט.
protected void Page_Load(object sender, EventArgs e) { GridView1.DataSource = null; GridView1.DataBind(); } <asp:GridView ID="GridView1" runat="server"> <EmptyDataTemplate> <script type="text/javascript"> alert('אין נתונים להציג!!! אהההה!!!'); </script> </EmptyDataTemplate> </asp:GridView>​
 
למעלה