ASP.NET - DataList کنٹرول

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>

یہ مثال دکھائیئے