מדריך ASP.NET – עבודה עם נתונים: שימוש ב-ObjectDataSource

‏ • Sela

במדריך זה נראה כיצד משתמשים ב – ObjectDataSource על מנת להציג נתונים באמצעות פקד GridView ובאמצעות פקד Repeater.

נוסיף לפרויקט שלנו מחלקה חדשה בשם Person (בחירה ב-Add Class מתפריט Project):

ASPNET - הוספת מחלקה

נרשום את קוד המחלקה באופן הבא:

public class Person
{
  public string FirstName { get; set; }
  public string LastName { get; set; }
  public string FullName
  {
    get
    {
      return string.Format("{0} {1}", FirstName, LastName);
    }
  }
  public DateTime BirthDate { get; set; }
}

נוסיף עוד מחלקה בשם PersonLogic שתכיל את הפעולות שאנו רוצים לבצע. נרשום את קוד המחלקה באופן הבא:

public class PersonLogic
{
  public static List<Person> CreatePeopleList()
  {
    List<Person> people = new List<Person>();
    for (int i = 0; i < 5; i++)
    {
      people.Add(new Person()
      {
        FirstName = string.Format("First{0}", i),
        LastName = string.Format("Last{0}", i),
        BirthDate = new DateTime(1980, 10, i + 1),
      });
    }
    return people;
  }
}

נוסיף דף ASPX למערכת שלנו ומתוך ה – Toolbox, תחת הקטגוריה Data, נמצא את ObjectDataSource ונגרור אותו לתוך הדף:

ASPNET - בחירת ObjectDataSource

נשנה ל – ObjectDataSource את ה – ID ל – myDataSource. לאחר מכן נמצא את פקד ה – GridView ב – Toolbox ונגרור אותו לדף. נלחץ על החץ המסומן בעיגול:

ASPNET - שימוש ב-StartTag

בתיבה שנפתחה – נסמן את myDataSource כמקור הנתונים של ה – GridView:

ASPNET - בחירת DataSource

נסמן את פקד ה-ObjectDataSource, נלחץ עליו עם הכפתור הימני של העבר ונבחר ב-Properties. בחלון ה-Properties נגדיר ערכים לשני מאפיינים חשובים:

1. TypeName – זהו שם המחלקה ממנה אנחנו מקבלים את הנתונים (זהו איננו סוג הנתון עצמו), כולל ה-Namespace המלא, לדוגמה DataDemo.PersonLogic

(במרבית המקרים ה-Namespace של המחלקה יהיה על-פי שם פרויקט ה-Web שנוצר).

2. SelectMethod – זהו שם המתודה בתוך המחלקה מהמאפיין הקודם, המחזירה את הנתונים. המתודה צריכה להיות public, לא-גנרית (ללא <T> בשמה) וללא פרמטרים, לדוגמה: CreatePeopleList. המתודה יכולה להיות סטטית (static), אך זה לא חובה.

כעת, כל שנותר לנו הוא לראות את התוצאה בדפדפן – נסמן את קובץ ה-ASPX ב-Solution Explorer, נלחץ על הכפתור הימני ונבחר ב-View in Browser:

ASPNET - תצוגת GridView

שימוש ב–Repeater

נוסיף לדף שלנו פקד Repeater ונבחר עבורו את ה – DataSource באותה הצורה:

ASPNET - בחירת DataSource ל-Repeater

כעת עלינו לערוך את התבנית של ה – Repeater, לצורך כך נחזור ל – Source tab ונכתוב את הכיתוב הבא:

<asp:Repeater ID="Repeater1" runat="server" 
DataSourceID="myDataSource">
<ItemTemplate>
   <asp:Label ID="Label1" 
    Text="Full Name:" runat="server" />
   <asp:Label ID="Label2" runat="server" 
    Text='<%# DataBinder.Eval(Container.DataItem, "FullName")%>'/>
   <asp:Label ID="Label3" 
    Text="Birth date: " runat="server" />
   <asp:Label ID="Label4" runat="server" 
    Text='<%# DataBinder.Eval(Container.DataItem, "BirthDate")%>'/>
   <br />
</ItemTemplate
>
</
asp:Repeater
>

שימו לב לאותם Labels המציגים את הנתונים, התחביר שלהם הוא קבוע כאשר מה שמשתנה הוא מה שכתוב במרכאות. אלו הם שמות המאפיינים של ה – class אליו אנחנו עושים DataBind.

כעת, נבדוק שוב את התוצאה בדפדפן. כתוצאה מה – Repeater, התקבלה התוצאה הזו:

ASPNET - תצוגת Repeater

תגיות: , , , ,

IdoFlatow

יועץ ומרצה בקבוצת סלע לתחומי Web ו-Data. עוסק בתחומים Asp.Net, WCF, Silverlight, IIS ו-Entity Framework.כותב הקורס הרשמי של מיקרוסופט ל-WCF וכן שותף בכתיבת הספר ASP.NET Programmer's Reference (ISBN 978-0470505458)

תגובות בפייסבוק