ASP.NET - تحكم DataList
- الصفحة السابقة Repeater WebForms
- الصفحة التالية اتصال قاعدة بيانات WebForms
تحكم DataList، مشابه للنوع Repeater، يستخدم لعرض قائمة تكرار للمشاريع المحددة من قبل هذا التحكم. ولكن، يضيف التحكم DataList بشكل افتراضي جدولًا على مشاريع البيانات.
ربط DataSet بتحكم DataList
النوع DataList، مشابه للنوع Repeater، يستخدم لعرض قائمة تكرار للمشاريع المحددة من قبل هذا التحكم. ولكن، يضيف التحكم DataList بشكل افتراضي جدولًا على مشاريع البيانات. يمكن ربط التحكم DataList بجداول قاعدة البيانات أو ملفات XML أو قوائم مشاريع أخرى. هنا، سنعرض كيفية ربط ملف XML بتحكم DataList.
نحن سنستخدم ملف XML التالي ("cdcatalog.xml") في المثال:
<?xml version="1.0" encoding="ISO-8859-1"?> <catalog> <cd> <title>Empire Burlesque</title> <artist>Bob Dylan</artist> <country>USA</country> <company>Columbia</company> <price>10.90</price> <year>1985</year> </cd> <cd> <title>Hide your heart</title> <artist>Bonnie Tyler</artist> <country>UK</country> <company>CBS Records</company> <price>9.90</price> <year>1988</year> </cd> <cd> <title>Greatest Hits</title> <artist>Dolly Parton</artist> <country>USA</country> <company>RCA</company> <price>9.90</price> <year>1982</year> </cd> <cd> <title>Still got the blues</title> <artist>Gary Moore</artist> <country>UK</country> <company>Virgin records</company> <price>10.20</price> <year>1990</year> </cd> <cd> <title>Eros</title> <artist>Eros Ramazzotti</artist> <country>EU</country> <company>BMG</company> <price>9.90</price> <year>1997</year> </cd> </catalog>
يرجى النظر في هذا الملف XML:cdcatalog.xml
أولاً، قم بتحميل مساحة الاسم "System.Data". نحتاج إلى هذه المساحة للعمل مع كائن DataSet. شامل التعليمات التالية في أعلى صفحة .aspx:
<%@ Import Namespace="System.Data" %>
ثم قم بإنشاء DataSet لهذا الملف XML، وأحمل هذا الملف XML عند تشغيل الصفحة لأول مرة:
<script runat="server"> sub Page_Load if Not Page.IsPostBack then dim mycdcatalog=New DataSet mycdcatalog.ReadXml(MapPath("cdcatalog.xml")) end if end sub
ثم نحن ننشئ عنصر DataList في صفحة .aspx. محتوى عناصر <HeaderTemplate> يظهر مرة واحدة في الناتج، بينما يظهر محتوى عناصر <ItemTemplate> مرة واحدة لكل "record" في DataSet، وأخيرًا، يظهر محتوى <FooterTemplate> مرة واحدة في الناتج:
<html> <body> <form runat="server"> <asp:DataList id="cdcatalog" runat="server"> <HeaderTemplate> ... </HeaderTemplate> <ItemTemplate> ... </ItemTemplate> <FooterTemplate> ... </FooterTemplate> </asp:DataList> </form> </body> </html>
ثم نضيف سكريبت يمكن إنشاء DataSet، ونقوم بتحديد mycdcatalog DataSet لهذا عنصر DataList. نستخدم أيضًا هذه العناصر لملء عنصر DataList: <HeaderTemplate> الذي يحتوي على العناوين، <ItemTemplate> الذي يحتوي على البيانات التي يتم عرضها، و<FooterTemplate> الذي يحتوي على النصوص. يرجى ملاحظة أن خاصية gridlines لعنصر DataList تم تعيينها إلى "both" لعرض حواف الجدول:
<%@ Import Namespace="System.Data" %> <script runat="server"> sub Page_Load if Not Page.IsPostBack then dim mycdcatalog=New DataSet mycdcatalog.ReadXml(MapPath("cdcatalog.xml")) cdcatalog.DataSource=mycdcatalog cdcatalog.DataBind() end if end sub </script> <html> <body> <form runat="server"> <asp:DataList id="cdcatalog" gridlines="both" runat="server"> <HeaderTemplate> مجلة CD الخاصة بي </HeaderTemplate> <ItemTemplate> "<%#Container.DataItem("title")%>" من <%#Container.DataItem("artist")%> - $<%#Container.DataItem("price")%> </ItemTemplate> <FooterTemplate> حقوق النشر codew3c.com </FooterTemplate> </asp:DataList> </form> </body> </html>
استخدام الأنماط
يمكنك أيضًا إضافة أنماط إلى عنصر DataList لجعله أكثر جاذبية:
<%@ Import Namespace="System.Data" %> <script runat="server"> sub Page_Load if Not Page.IsPostBack then dim mycdcatalog=New DataSet mycdcatalog.ReadXml(MapPath("cdcatalog.xml")) cdcatalog.DataSource=mycdcatalog cdcatalog.DataBind() end if end sub </script> <html> <body> <form runat="server"> <asp:DataList id="cdcatalog" runat="server" cellpadding="2" cellspacing="2" borderstyle="inset" backcolor="#e8e8e8" width="100%" headerstyle-font-name="Verdana" headerstyle-font-size="12pt" headerstyle-horizontalalign="center" headerstyle-font-bold="true" itemstyle-backcolor="#778899" itemstyle-forecolor="#ffffff" footerstyle-font-size="9pt" footerstyle-font-italic="true" <HeaderTemplate> مجلة CD الخاصة بي </HeaderTemplate> <ItemTemplate> "<%#Container.DataItem("title")%>" من <%#Container.DataItem("artist")%> - $<%#Container.DataItem("price")%> </ItemTemplate> <FooterTemplate> حقوق النشر codew3c.com </FooterTemplate> </asp:DataList> </form> </body> </html>
استخدام <AlternatingItemTemplate>
يمكنك إضافة عنصر <AlternatingItemTemplate> بعد عنصر <ItemTemplate> لكي يمكنك وصف مظهر الصفوف المتناوبة. يمكنك تطبيق أنماط على جزء <AlternatingItemTemplate> داخل عنصر DataList:
<%@ Import Namespace="System.Data" %> <script runat="server"> sub Page_Load if Not Page.IsPostBack then dim mycdcatalog=New DataSet mycdcatalog.ReadXml(MapPath("cdcatalog.xml")) cdcatalog.DataSource=mycdcatalog cdcatalog.DataBind() end if end sub </script> <html> <body> <form runat="server"> <asp:DataList id="cdcatalog" runat="server" cellpadding="2" cellspacing="2" borderstyle="inset" backcolor="#e8e8e8" width="100%" headerstyle-font-name="Verdana" headerstyle-font-size="12pt" headerstyle-horizontalalign="center" headerstyle-font-bold="True" itemstyle-backcolor="#778899" itemstyle-forecolor="#ffffff" alternatingitemstyle-backcolor="#e8e8e8" alternatingitemstyle-forecolor="#000000" footerstyle-font-size="9pt" footerstyle-font-italic="True"> <HeaderTemplate> مجلة CD الخاصة بي </HeaderTemplate> <ItemTemplate> "<%#Container.DataItem("title")%>" من <%#Container.DataItem("artist")%> - $<%#Container.DataItem("price")%> </ItemTemplate> <AlternatingItemTemplate> "<%#Container.DataItem("title")%>" من <%#Container.DataItem("artist")%> - $<%#Container.DataItem("price")%> </AlternatingItemTemplate> <FooterTemplate> © codew3c.com </FooterTemplate> </asp:DataList> </form> </body> </html>
- الصفحة السابقة Repeater WebForms
- الصفحة التالية اتصال قاعدة بيانات WebForms