מדריך ASP.NET – עבודה עם נתונים: שימוש ב-ObjectDataSource
במדריך זה נראה כיצד משתמשים ב – ObjectDataSource על מנת להציג נתונים באמצעות פקד GridView ובאמצעות פקד Repeater.
נוסיף לפרויקט שלנו מחלקה חדשה בשם Person (בחירה ב-Add Class מתפריט Project):
נרשום את קוד המחלקה באופן הבא:
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 ונגרור אותו לתוך הדף:
נשנה ל – ObjectDataSource את ה – ID ל – myDataSource. לאחר מכן נמצא את פקד ה – GridView ב – Toolbox ונגרור אותו לדף. נלחץ על החץ המסומן בעיגול:
בתיבה שנפתחה – נסמן את myDataSource כמקור הנתונים של ה – GridView:
נסמן את פקד ה-ObjectDataSource, נלחץ עליו עם הכפתור הימני של העבר ונבחר ב-Properties. בחלון ה-Properties נגדיר ערכים לשני מאפיינים חשובים:
1. TypeName – זהו שם המחלקה ממנה אנחנו מקבלים את הנתונים (זהו איננו סוג הנתון עצמו), כולל ה-Namespace המלא, לדוגמה DataDemo.PersonLogic
(במרבית המקרים ה-Namespace של המחלקה יהיה על-פי שם פרויקט ה-Web שנוצר).
2. SelectMethod – זהו שם המתודה בתוך המחלקה מהמאפיין הקודם, המחזירה את הנתונים. המתודה צריכה להיות public, לא-גנרית (ללא <T> בשמה) וללא פרמטרים, לדוגמה: CreatePeopleList. המתודה יכולה להיות סטטית (static), אך זה לא חובה.
כעת, כל שנותר לנו הוא לראות את התוצאה בדפדפן – נסמן את קובץ ה-ASPX ב-Solution Explorer, נלחץ על הכפתור הימני ונבחר ב-View in Browser:
שימוש ב–Repeater
נוסיף לדף שלנו פקד Repeater ונבחר עבורו את ה – DataSource באותה הצורה:
כעת עלינו לערוך את התבנית של ה – 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, התקבלה התוצאה הזו:
תגובות בפייסבוק