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> My CD Catalog </HeaderTemplate> <ItemTemplate> "<%#Container.DataItem("title")%>" of <%#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> My CD Catalog </HeaderTemplate> <ItemTemplate> "<%#Container.DataItem("title")%>" of <%#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> My CD Catalog </HeaderTemplate> <ItemTemplate> "<%#Container.DataItem("title")%>" of <%#Container.DataItem("artist")%> - $<%#Container.DataItem("price")%> </ItemTemplate> <AlternatingItemTemplate> "<%#Container.DataItem("title")%>" of <%#Container.DataItem("artist")%> - $<%#Container.DataItem("price")%> </AlternatingItemTemplate> <FooterTemplate> © codew3c.com </FooterTemplate> </asp:DataList> </form> </body> </html>
- پچھلے پیج Repeater WebForms
- آئندہ پیج WebForms ڈیٹا بیس کنکشن