آموزش WebForm-کنترل DataList
کنترل DataList، مانند کنترل Repeater، برای نمایش لیستی از آیتم های تکراری استفاده می شوند که به یک کنترل متصل می شوند. با این وجود، کنترل DataList، داده ها را به صورت پیش فرض در یک جدول قرار می دهد.
اتصال یک DataSet به کنترل Datalist
کنترل DataList، مانند کنترلRepeater، برای نمایش لیستی از آیتم های تکراری استفاده می شوند که به یک کنترل متصل می شوند. با این وجود کنترل DataList، داده ها را به صورت پیش فرض در یک جدول قرار می دهد. کنترل DataList ممکن است به یک جدول پایگاه داده، یک فایل XML، یا هر لیستی از آیتم ها متصل شود. در این آموزش، نحوه اتصال یک فایل XML را به کنترل DataList نشان خواهیم داد.
از فایل XML زیر در مثال های این آموزش استفاده کرده ایم ("cdcatalog.xml")
<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. وارد نمایید.
در مرحله بعد، یک DataSet برای فایل XML ایجاد نمایید و هنگامی که صفحه بارگذاری شد، فایل XML را درون DataSet بارگذاری نمایید.
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> یکبار با خروجی پر می شود.
<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)
<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)
<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)
<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>
© 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 |
- نوشته شده توسط مظاهر نصوحی
- بازدید: 12403