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 را در زمان بارگذاری اولیه صفحه به DataSet بارگذاری کنید:
<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 ایجاد کند و این DataSet mycdcatalog را به کنترل 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>
شما میتوانید علامت <ItemTemplate> را پس از علامت <AlternatingItemTemplate> اضافه کنید تا ظاهر ردیفهای متناوب را توصیف کنید. شما میتوانید بخش <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