التحكم Datalist على هو، مثل السيطرة مكرر، وتستخدم لعرض قائمة متكررة من العناصر التي لا بد أن عنصر التحكم. ومع ذلك، التحكم Datalist على يضيف الجدول حول عناصر البيانات بشكل افتراضي.
ربط DataSet إلى التحكم Datalist على
التحكم Datalist على هو، مثل السيطرة مكرر، وتستخدم لعرض قائمة متكررة من العناصر التي لا بد أن عنصر التحكم. ومع ذلك، التحكم 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" مساحة الاسم. نحن بحاجة إلى هذا مساحة للعمل مع كائنات مجموعة البيانات. تشمل التوجيه التالية في الجزء العلوي من صفحة .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>
ثم نضيف البرنامج النصي الذي يخلق مجموعة البيانات ويربط مجموعة البيانات 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>
Copyright Hege Refsnes
</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>
Copyright Hege Refsnes
</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>
© Hege Refsnes
</FooterTemplate>
</asp:DataList>
</form>
</body>
</html>
شاهد المثال »