سبد (0)

آموزش WebForm-کنترل 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 اضافه می کنیم و mycdcatalog DataSet را به کنترل DataList متصل می کنیم. همچنین کنترل DataList را با تگ های <HeaderTemplate> که حاوی عنوان جدول می باشد، و با استفاده از <ItemTemplate> که حاوی داده هایی است که بایستی نمایش داده شود، و <FooterTemplate> که حاوی متن است پر می کنیم. توجه فرمایید که ویژگی gridline کنترل Dataset معادل "both" قرار داده شده است تا حاشیه های جدول را نمایش دهد.

مثال (آموزش WebForm-کنترل 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"
gridlines="both" runat="server">

<HeaderTemplate>
My CD Catalog
</HeaderTemplate>

<ItemTemplate>
"<%#Container.DataItem("title")%>" of
<%#Container.DataItem("artist")%> -
$<%#Container.DataItem("price")%>
</ItemTemplate>

<FooterTemplate>
Copyright Hege Refsnes
</FooterTemplate>

</asp:DataList>
</form>

</body>
</html>

خروجی کد بالا:

My CD Catalog
"Empire Burlesque" of Bob Dylan - $10.90
"Hide your heart" of Bonnie Tyler - $9.90
"Greatest Hits" of Dolly Parton - $9.90
"Still got the blues" of Gary Moore - $10.20
"Eros" of Eros Ramazzotti - $9.90
© Hege Refsnes

استفاده از استایل

می توانید برای اینکه خروجی را زیباتر نمایید، به کنترل DataList استایل اضافه نمایید:

مثال (آموزش WebForm-کنترل 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>
Copyright Hege Refsnes
</FooterTemplate>

</asp:DataList>
</form>

</body>
</html>

خروجی کد بالا:

My CD Catalog
"Empire Burlesque" of Bob Dylan - $10.90
"Hide your heart" of Bonnie Tyler - $9.90
"Greatest Hits" of Dolly Parton - $9.90
"Still got the blues" of Gary Moore - $10.20
"Eros" of Eros Ramazzotti - $9.90
© Hege Refsnes

استفاده از <AlternatingItemTemplate>

می توانیم از عنصر <AlternatingItemTemplate> بعد از عنصر <ItemTemplate> استفاده کنیم تا در رابطه با ظاهر ردیف های خروجی توضیح دهیم. شما ممکن است به داده های بخش <AlternatingItemTemplate> استایل اضافه نمایید:

مثال (آموزش WebForm-کنترل 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>
&copy; Hege Refsnes
</FooterTemplate>

</asp:DataList>
</form>

</body>
</html>

خروجی کد بالا:

My CD Catalog
"Empire Burlesque" of Bob Dylan - $10.90
"Hide your heart" of Bonnie Tyler - $9.90
"Greatest Hits" of Dolly Parton - $9.90
"Still got the blues" of Gary Moore - $10.20
"Eros" of Eros Ramazzotti - $9.90
© Hege Refsnes

آموزش صوتی ASP

ابزاری که در پیش روی دارید یکی از ابزارهای بسیار کاربردی سایت بیاموز در زمینه آموزش است، این ابزار برای سهولت یادگیری شما کاربران محترم طراحی شده است.

فقط کافی است روی عنوان پاراگراف مورد نظرتان کلیک کنید تا پخش صدا آغاز شود ...!

تمامی محصولات و خدمات این وبسایت، حسب مورد دارای مجوزهای لازم از مراجع مربوطه می‌باشند و فعالیت‌های این سایت تابع قوانین و مقررات جمهوری اسلامی ایران است.
logo-samandehi مجوز نشر دیجیتال از وزرات فرهنگ و ارشاد اسلامی پرداخت آنلاین -  بانک ملت معرفی بیاموز در شبکه سه