ใช้การควบคุมการเชื่อมโยง ASP+ รายการ
Nikhil Kothari
Microsoft Corporation
กรกฎาคม 2000
บทคัดย่อ: อธิบายการควบคุม ASP+ repeater, Datalist และ DataGrid Server การควบคุมเหล่านี้สามารถรับรู้แหล่งข้อมูลส่วนต่อประสานผู้ใช้แอปพลิเคชัน HTML อภิปรายแนวคิดที่เกี่ยวข้องกับการควบคุมเหล่านี้และสรุปตัวอย่างพื้นฐานของการใช้การควบคุมเหล่านี้
สารบัญ
บทนำสั้น ๆ
การควบคุมการเชื่อมโยงรายการทำงานอย่างไร?
การควบคุม repeater
การควบคุมข้อมูล
DataGrid Control
Repeater, Datalist หรือ DataGrid?
ทรัพยากรที่เกี่ยวข้อง
ดาวน์โหลดไฟล์ตัวอย่าง (56 kb) ที่เกี่ยวข้องกับบทความนี้
บทนำสั้น ๆ
Repeater, Datalist และ DataGrid Control เป็นชุดควบคุมเว็บที่เกี่ยวข้องในพื้นที่ชื่อใน System.web.webcontrols ในกรอบ ASP+ Page Framework การควบคุมเหล่านี้ทำให้เนื้อหาของรายการที่มีผลผูกพันหรือแหล่งข้อมูลของการแสดงผล HTML ดังนั้นพวกเขาจึงอ้างถึงพวกเขาว่า "รายการควบคุมที่มีผลผูกพัน"
คล้ายกับการควบคุมเว็บอื่น ๆ ในเฟรมเวิร์กการควบคุมเหล่านี้ให้แบบจำลองการเขียนโปรแกรมที่สอดคล้องกันและห่อหุ้มตรรกะตัวแทนที่เป็นอิสระจากเบราว์เซอร์ ลักษณะเหล่านี้ช่วยให้นักพัฒนาสามารถโปรแกรมในแบบจำลองวัตถุโดยไม่ต้องควบคุมความรู้ด้านเทคนิคที่ไม่สอดคล้องและซับซ้อนที่เกี่ยวข้องกับ HTML
การควบคุมทั้งสามนี้สามารถแสดงเนื้อหาแหล่งข้อมูลที่เกี่ยวข้องกับแหล่งข้อมูลที่เกี่ยวข้องตามเลย์เอาต์ที่หลากหลาย (รวมถึงรายการคอลัมน์คอลัมน์/หนังสือพิมพ์และโครงร่างสตรีม (สตรีม HTML) นอกจากนี้พวกเขายังอนุญาตให้คุณสร้างเค้าโครงที่แตกต่างอย่างสมบูรณ์หรือปรับแต่งอย่างสมบูรณ์ นอกเหนือจากตรรกะของบรรจุภัณฑ์แล้วยังให้ฟังก์ชั่นของการประมวลผลข้อมูลที่ส่งการจัดการสถานะการดำเนินการและเหตุการณ์ที่เกิดขึ้น ในที่สุดพวกเขายังให้การสนับสนุนในระดับที่แตกต่างกันสำหรับการดำเนินงานมาตรฐานเช่นการเลือกการแก้ไขการเพจและการเรียงลำดับ การควบคุมเหล่านี้สามารถทำให้เว็บแอปพลิเคชันทั่วไปหลายอย่างง่ายขึ้นรวมถึงรายงาน, ตะกร้าสินค้า, รายการผลิตภัณฑ์, ผลลัพธ์การสืบค้นและเมนูนำทาง
ต่อไปนี้จะแสดงการควบคุมเหล่านี้เพิ่มเติมและวิธีการใช้งานในเว็บแอปพลิเคชันของคุณและวิธีการเลือกการควบคุม
การควบคุมการเชื่อมโยงรายการทำงานอย่างไร?
ส่วนนี้เป็นวัสดุพื้นหลังของส่วนที่เหลือของบทความนี้ ภาพรวมวิธีการทำงานของรายการควบคุมการเชื่อมโยงรายการเหล่านี้ลักษณะทั่วไปและแนวคิดที่เกี่ยวข้องบางอย่าง
คุณลักษณะของแหล่งข้อมูล
การควบคุมแต่ละตัวมีแอตทริบิวต์ DataSource ที่มีประเภทคือ System.collections.icollection ในคำที่ง่ายที่สุดแหล่งข้อมูลเป็นรายการหรือการรวบรวมวัตถุที่คล้ายกัน
วัตถุหลายอย่างในเฟรมเวิร์กนี้ให้การใช้งาน ICOLLECTION คอลเลกชันนี้รวมถึง System.data.Dataview (โดยปกติจะใช้ในการเข้าถึงฐานข้อมูลเชิงสัมพันธ์และข้อมูล XML) การใช้งาน ICOLLECTION ทั่วไป (เช่น ArrayList และ Hashtable) และ Array
ซึ่งแตกต่างจากการควบคุมการเชื่อมโยงข้อมูลแบบดั้งเดิม (โดยปกติแล้วจำเป็นต้องมีชุดบันทึก ADO) ยกเว้นการใช้อินเทอร์เฟซ ICOLLECTION การควบคุมรายการที่มีผลผูกพันเหล่านี้ไม่ได้เสริมสร้างข้อกำหนดอื่น ๆ สำหรับแหล่งข้อมูลของพวกเขา ตามการออกแบบประเภทและโครงสร้างข้อมูลที่สามารถใช้เป็นแอตทริบิวต์ข้อมูลข้อมูลที่ถูกต้องผ่านจำนวนมากและสามารถเพิ่มความยืดหยุ่นและยืดหยุ่นให้กับรหัสแอปพลิเคชันของคุณได้อย่างง่ายที่สุด
คอลเลกชันโครงการ
การควบคุมการเชื่อมโยงรายการแต่ละรายการมีชุดโครงการ การควบคุมถูกตั้งค่าไว้ในการรวบรวมโครงการโดยแสดงรายการแหล่งข้อมูลปัจจุบันของวัตถุเหล่านี้ สร้างรายการเดียวสำหรับแต่ละวัตถุและใช้เพื่อแสดงวัตถุ รายการเหล่านี้เป็นส่วนหนึ่งของโครงสร้างลำดับชั้นควบคุมที่มีอยู่ในรายการควบคุมการเชื่อมโยงรายการ
ตารางด้านล่างแสดงประเภทของโครงการที่เกี่ยวข้องกับแหล่งข้อมูล
ประเภทโครงการเริ่มต้นที่สร้างโดยโครงการ
STERVERATIONITEM คือการสร้างโครงการที่มีการเสนอราคาแปลก ๆ ในคอลเลกชันโครงการ
SelectedItem ถูกสร้างขึ้นสำหรับโครงการที่เลือก (ไม่ว่าโครงการจะเป็นโครงการทางเลือก) หรือไม่)
EditItem ถูกสร้างขึ้นสำหรับโครงการในโหมดแก้ไข (ไม่ว่าจะถูกเลือกหรือทางเลือก)
การควบคุมจะถูกสร้างขึ้นในเวลาเดียวกันในรายการต่อไปนี้ที่จะใช้ อย่างไรก็ตามพวกเขาไม่เกี่ยวข้องกับข้อมูลแหล่งข้อมูล
ส่วนหัวใช้เพื่อแสดงข้อมูลส่วนหัว
เชิงอรรถใช้เพื่อระบุข้อมูลที่เป็นรูปแบบ
ตัวคั่นจะใช้เพื่อแสดงเนื้อหาระหว่างแต่ละรายการที่แสดงในรูปที่ 1 และใช้ได้เฉพาะกับ repeater และ datalist
สัญลักษณ์การเพจที่ใช้เพื่อระบุ ui pagination ที่เกี่ยวข้องกับการควบคุม dataGrid
รูปที่ 1. เมื่อเทียบกับคอลเลกชัน "โครงการ" ของคอลเลกชัน "ควบคุม"
การเชื่อมโยงข้อมูลโครงการและการสร้าง
การควบคุมรายการที่มีผลผูกพันเป็นไปตามรูปแบบการเชื่อมโยงข้อมูลที่ชัดเจนที่ใช้ในกรอบ ASP+ ทั้งหมด ซึ่งหมายความว่าจะต้องมีการควบคุมเฉพาะเมื่อมีการเรียกใช้วิธี Databind
เมื่อมีการเรียกใช้วิธี Databind การควบคุมรายการจะแสดงรายการแหล่งข้อมูลสร้างโครงการและเริ่มต้นโดยการแยกค่าออกจากแหล่งข้อมูล หากเปิดใช้งานการจัดการสถานะการควบคุมจะบันทึกข้อมูลที่จำเป็นทั้งหมดเพื่อสร้างโครงการใหม่ในระหว่างระยะเวลาการประมวลผลการส่งคืนของหน้าโดยไม่ต้องตั้งแหล่งข้อมูลอีกครั้ง
โมเดลการเชื่อมโยงข้อมูลที่ชัดเจนช่วยให้รหัสแอปพลิเคชันของคุณสามารถกำหนดได้อย่างถูกต้องเมื่อใดและที่ไหนที่ต้องการแหล่งข้อมูลในลำดับการประมวลผล คุณลักษณะนี้ทำให้การเข้าถึงเซิร์ฟเวอร์ฐานข้อมูลน้อยลงและมีประสิทธิภาพมากขึ้นและการเข้าถึงเหล่านี้มักจะเป็นการใช้งานที่ใช้มากที่สุดของเว็บแอปพลิเคชัน
กฎทั่วไปคือต้องมีการเรียกดาต้าบินเมื่อใดก็ตามที่คุณต้องการสร้างโครงการใหม่ ในกรณีส่วนใหญ่คุณจะโทรหา Databind เมื่อหน้าของคุณถูกขอให้สร้างคอลเลกชันโครงการเริ่มต้นเป็นครั้งแรก ในระหว่างการดำเนินการตาม -อัพของหน้านี้คุณจะต้องโทรหาวิธีนี้ในขั้นตอนการประมวลผลเหตุการณ์ต่าง ๆ ที่เปลี่ยนแปลงโดยคอลเลกชันโครงการ สิ่งนี้เกิดขึ้นเมื่อแบบสอบถามที่ใช้ในการสร้างแหล่งข้อมูลเริ่มต้นอาจเกิดขึ้น สิ่งนี้อาจเกิดขึ้นได้เมื่อสถานะของโครงการเปลี่ยนแปลง (เช่นการเปลี่ยนจากโหมดแก้ไขเท่านั้น)
สไตล์
ด้วยการใช้แอตทริบิวต์สไตล์บนโมเดลวัตถุคุณสามารถกำหนดตัวควบคุมข้อมูลและดาต้ากริดทั้งหมดและรูปแบบและการปรากฏตัวที่มีอยู่ คุณลักษณะเหล่านี้ได้รับอนุญาตให้ปรับแต่งฟอนต์สีพรมแดนและปัจจัยลักษณะอื่น ๆ คุณลักษณะสไตล์ของตัวควบคุมเอง (เช่นสีเบื้องหน้าสีพื้นหลังแบบอักษรและสไตล์ชายแดน) จะส่งผลกระทบต่อการเป็นตัวแทนของการควบคุมทั้งหมด
นอกจากนี้การควบคุมแต่ละตัวมีแอตทริบิวต์สไตล์จำนวนมากที่ตรงกับประเภทของรายการที่สร้างขึ้นเช่น itemstyle, olltingItemstyle และ headersstyle DataGrid นำเสนอแอตทริบิวต์สไตล์ระดับที่สามที่มีผลต่อเซลล์ทั้งหมดในคอลัมน์เฉพาะ แต่ละคอลัมน์ที่มีอยู่ในการควบคุมสามารถมี headlderstyle, footertyle และ itemstyte ของตัวเอง
เทมเพลต
รูปแบบการควบคุมสไตล์จะปรากฏขึ้นในขณะที่เทมเพลตกำหนดเนื้อหาและการเป็นตัวแทนของแต่ละรายการ คุณสามารถนึกถึงเทมเพลตเป็นแผ่นรหัส HTML ซึ่งกำหนดโครงสร้างลำดับชั้นการควบคุมที่ใช้เพื่อเป็นตัวแทนของโครงการ
การควบคุม Repeater และ Datalist นั้นถูกขับเคลื่อนโดยเทมเพลตที่ระบุของคุณเพื่อให้คุณสมบัติเทมเพลตที่ตั้งค่าได้เช่น itemTemplate, SollematingItemTemplate และ HEADERTEMPLATE คล้ายกับสไตล์แต่ละเทมเพลตสอดคล้องกับประเภทของโครงการเฉพาะ
การควบคุม DataGrid ไม่ใช่เทมเพลต อย่างไรก็ตาม TemplateColumns ในคอลัมน์คอลเลกชันของการควบคุมทำให้การใช้เทมเพลตใน DataGrid แต่ละเซลล์ใน Templatecolum สามารถมีเทมเพลตซึ่งคล้ายกับรายการในตัวควบคุม repeater หรือ Datalist นอกจากนี้ยังทำให้การปรับแต่งใน DataGrid เป็นไปได้
การเชื่อมโยงข้อมูลในเทมเพลต
โครงสร้างลำดับชั้นควบคุมที่มีอยู่ในรายการนิยามเทมเพลต โดยการใช้การแสดงออกของการเชื่อมโยงข้อมูลแอตทริบิวต์การควบคุมในโครงสร้างระดับนี้สามารถผูกพันกับคุณสมบัติข้อมูลที่เกี่ยวข้องกับโครงการนี้
โครงการระดับพาเรนต์แบบตรรกะเป็นเทมเพลตเรียกว่า "คอนเทนเนอร์" ในนิพจน์การเชื่อมโยงข้อมูล แต่ละคอนเทนเนอร์มีแอตทริบิวต์ที่เรียกว่า DataItem ซึ่งเสนอราคาข้อมูลที่เกี่ยวข้อง เป็นผลให้นิพจน์การเชื่อมโยงข้อมูลทั่วไปส่วนใหญ่ในเทมเพลตผูกแอตทริบิวต์การควบคุมในคุณสมบัติที่แน่นอนของคอนเทนเนอร์ dataitem การเชื่อมโยงนี้จะอธิบายเพิ่มเติมในตัวอย่างต่อไปนี้
การควบคุม repeater
ดังที่ได้กล่าวไว้ก่อนหน้านี้การควบคุม repeater นั้นถูกขับเคลื่อนโดยเทมเพลตอย่างสมบูรณ์ซึ่งช่วยให้สามารถเป็นตัวแทนและเค้าโครงที่ปรับแต่งได้อย่างสมบูรณ์ รูปด้านล่างแสดงฟังก์ชั่นนี้
รูปที่ 2. รายการลิงก์ของสัญลักษณ์โครงการที่เชื่อมโยงที่สร้างขึ้นโดยใช้ตัวควบคุม repeater
ข้อความที่ตัดตอนมาจาก repeater1.aspx:
<%@page language = c# src = repeater1.cs สืบทอด = samples.repeter1Page%>
ยืดหยุ่น
<asp: repeater runat = server id = linkslistrepeater
dataSource = '< %# siteelinks %>'>
<ชื่อเทมเพลต = headerTemplate>
<ul type = 1>
</แม่แบบ>
<ชื่อเทมเพลต = itemTemplate>
<li>
<ASP: HyperLink Runat = Server
text = '< %# databinder.eval.eval (container.dataitem, site) %>'
naviterfienturl = '< %# databinder.eval.eval.dataitem, siteurl) %>'>
</asp: ไฮเปอร์ลิงก์>
</li>
</แม่แบบ>
<ชื่อเทมเพลต = footertemplate>
</ul>
</แม่แบบ>
</asp: repeater>
ไฟล์. aspx นี้แสดงคำสั่งการสร้างตัวควบคุม repeater เพื่อสร้างรายการสัญลักษณ์โครงการ
ตัวอย่างนี้แสดงวิธีการคำสั่งของการตั้งค่าแหล่งข้อมูลด้วยไวยากรณ์การเชื่อมโยงข้อมูล (<%#...%>) เมื่อคุณเรียกใช้วิธี Databind นิพจน์ในการเชื่อมโยงข้อมูลจะถูกดำเนินการ ในกรณีนี้คุณสมบัติ DataSource ของ repeater ถูกผูกไว้กับคุณสมบัติ siteLinks บนหน้าและหลังมีการอ้างอิง URL ที่จะแสดง
Repeater เป็นตัวควบคุมเดียวที่อนุญาตให้ชิ้นส่วน HTML อยู่ในเทมเพลต ในตัวอย่างนี้รายการสัญลักษณ์โครงการแบ่งออกเป็นสามส่วน:
เริ่มต้นด้วยรายการของ headertemplate (<ul type = 1>)
จบป้ายกำกับ (</ul>) โดยรายการที่แสดงโดย footertemplate
เนื้อหาหลักของรายการถูกวางไว้จากรายการ (<li>) ที่สร้างขึ้นโดยการทำซ้ำรายการ itemTemplate ในแต่ละวัตถุในชุด siteLinks
นอกจากนี้คุณยังสามารถใช้เทมเพลตเหล่านี้เพื่อระบุเครื่องหมายเริ่มต้น (<batbor>) ในส่วนหัว, ฉลากปลายทาง (</bleble>) ระบุตารางในเชิงอรรถและระบุบรรทัดนาฬิกาเดี่ยวในแต่ละโครงการ แก่นแท้ ตัวเลือกการแทนที่นี้จะนำไปสู่การแสดงรายการ
คุณต้องระบุ itemTemplate มันเป็นเทมเพลตที่จำเป็นเท่านั้น เมื่อไม่ได้ระบุเทมเพลตอื่นการควบคุมจะใช้ itemTemplate นี้โดยอัตโนมัติสำหรับเทมเพลตอื่น ๆ
ในตัวอย่างต่อไปนี้ itemTemplate มีการควบคุมเว็บไฮเปอร์ลิงก์ แอตทริบิวต์ข้อความและ NaviGateurl ของตัวควบคุมนี้ถูกผูกไว้กับคุณสมบัติข้อมูลที่เกี่ยวข้องกับแต่ละโครงการที่ซ้ำกัน สิ่งนี้เสร็จสมบูรณ์โดยใช้นิพจน์การเชื่อมโยงข้อมูล (มองหานิพจน์ทันทีหลังจากสร้างโครงการ)
repeater1.cs:
ตัวอย่างเนมสเปซ {
ยืดหยุ่น
Public Class Repeater1Page: หน้า {
ได้รับการป้องกัน repeater linkslistrepeater;
public Icollection siteelinks {
รับ {
arraylist sites = new ArrayList ();
sites.add (ใหม่ siteinfo (Microsoft Home,
http://www.microsoft.com);
sites.add (ใหม่ siteinfo (บ้าน msdn,
http://msdn.microsoft.com);
sites.add (ใหม่ siteinfo (หน้าแรก msn,
http://www.msn.com));
sites.add (siteinfo ใหม่ (hotmail,
http://www.hotmail.com));
ไซต์ส่งคืน;
-
-
ได้รับการป้องกันการแทนที่โมฆะ overoad (eventargs e) {{
base.onload (e);
ถ้า (! isPostBack) {
// เมื่อร้องขอหน้าเป็นครั้งแรกการเชื่อมโยงข้อมูลจะดำเนินการ
// สิ่งนี้จะเรียกแต่ละการควบคุมซ้ำในโครงสร้างลำดับชั้นการควบคุมของหน้านี้
databind ();
-
-
-
คลาสที่ปิดผนึกระดับสาธารณะ siteinfo {
ไซต์สตริงส่วนตัว
สตริงส่วนตัว siteurl;
Public SiteInfo (String sitename, String siteurl) {{
this.sitename = sitename;
this.siteurl = siteurl;
-
ไซต์สตริงสาธารณะ {
รับ {return site;}
-
สตริงสาธารณะ siteurl {
geturn siteurl;}
-
-
-
ไฟล์. cs นี้มีรหัสที่ปรากฏพร้อมกันในหน้า ASPX ในรายการก่อนหน้า
คลาส Repeater1Page ครอบคลุมวิธีการเปิดโหลดของคลาสหน้า สิ่งนี้บ่งชี้ว่า Databind เรียกว่าในคำขอแรกของหน้านี้ สิ่งนี้จะทำให้นิพจน์ข้อมูลที่มีผลผูกพันในหน้าเหล่านี้เพื่อให้ความสำคัญกับข้อมูลและทำให้รายการควบคุม repeater เป็นแหล่งที่มาของข้อมูลและสร้างโครงการของพวกเขา โทรหาวิธี Databind เฉพาะเมื่อมีการร้องขอครั้งแรก เหตุผลที่ทำให้สิ่งนี้สามารถใช้งานได้เป็นเพราะ repeater สามารถสร้างโครงการในกระบวนการส่งคืนของสถานะที่เก็บรักษาไว้ก่อนโดยไม่จำเป็นต้องใช้อินสแตนซ์แหล่งข้อมูล
หน้านี้แสดงคุณสมบัติสาธารณะของประเภท icollection สิ่งนี้จะถูกใช้ในการแสดงออกที่มีผลผูกพันข้อมูลของค่าแอตทริบิวต์ข้อมูลของ repeater การได้มาซึ่งแอตทริบิวต์ใช้ ArrayList ที่มีชุดลำดับของ SiteInfo แอตทริบิวต์นี้เป็นสาธารณะเพราะมีเพียงหน้าของสาธารณะและสมาชิกคุ้มครองเท่านั้นที่สามารถใช้ในการแสดงออกที่มีผลผูกพันข้อมูล
แต่ละวัตถุ siteinfo มีสองแอตทริบิวต์: sitename และ siteurl เมื่อการเชื่อมโยงข้อมูลของการควบคุมไฮเปอร์ลิงก์ในเทมเพลตให้เข้าถึงแอตทริบิวต์เหล่านี้ ในการแสดงออกที่มีผลผูกพันของการควบคุมนี้ container.dataitem กล่าวว่าจำเป็นต้องผูกรายการเฉพาะกับวัตถุ siteinfo เดียว databinder.eval (container.dataitem, sitename) เยี่ยมชมคุณสมบัติ sitename ของวัตถุ SiteInfo ปัจจุบัน
ตัวอย่าง Repeater1 แนะนำให้คุณรู้จักกับแนวคิดพื้นฐานหลายประการ:
เทมเพลตคำจำกัดความ
ข้อมูลไวยากรณ์ที่มีผลผูกพันข้อมูลและการแสดงออกที่มีผลผูกพันข้อมูลในเทมเพลต
ใช้ icollection ของ ArrayList เป็นแหล่งข้อมูล
เรียกเมธอด databind ระหว่างหน้าประมวลผลเริ่มต้น
การควบคุมข้อมูล
การควบคุม Datalist เป็นตัวควบคุมแบบเทมเพลตที่ให้ความสามารถในการใช้แอตทริบิวต์สไตล์เพื่อจัดรูปแบบความสามารถ นอกจากนี้ยังสามารถสร้างหลายคอลัมน์ รูปที่ 3 แสดงลักษณะทั้งสองนี้
รูปที่ 3 ตัวอย่างที่สร้างขึ้นจากคอลัมน์คู่ของ Datalist
ข้อความที่ตัดตอนมาจาก datalist1.aspx:
<%@page language = c# src = datalist1.cs สืบทอด = samples.datalist1Page%>
ยืดหยุ่น
<asp: datalist runat = server id = peicalDatalist
repeatColumns = 2 repefirection = แนวตั้ง repeatmode = ตาราง
ความกว้าง = 100%>
<poperty name = surgentatingItemstyle>
<ASP: TableItemstyle backcolor =#elyeeee/>
</property>
<ชื่อเทมเพลต = itemTemplate>
<ASP: Panel Runat = Server Font-Size = 12PT FONT-BOLD = TRUE>
< %# ((บุคคล) container.dataitem) .name %>
</ASP: แผง>
<asp: label runat = ความกว้างเซิร์ฟเวอร์ = 20px
Borderstyle = Solid Borderwidth = 1px BorderColor = Black
backcolor = '< %# ((บุคคล) container.dataitem)
</asp: label>
<asp: label runat = เซิร์ฟเวอร์ font-size = 10pt
text = '< %# getColorname ((บุคคล) container.dataItem)
</asp: label>
</แม่แบบ>
</asp: Datalist>
ไฟล์. aspx นี้แสดงคำสั่งของ datalist ที่ใช้ในการสร้างตัวอย่างนี้
ในตัวอย่างนี้เค้าโครงหลายคอลัมน์ของ Datalist สามารถทำได้โดยการตั้งค่าคุณสมบัติ RepeatColumns เป็น "2" การตั้งค่าการทำซ้ำเป็น "แนวตั้ง" จะทำให้โครงการจัดเรียงจากบนลงล่างจากนั้นจัดจากซ้ายไปขวา ในทางกลับกันค่าที่ตั้งไว้เป็น "แนวนอน" จะทำให้โครงการจัดจากซ้ายไปขวาจากนั้นจากบนลงล่าง
ไวยากรณ์ ASPX มีการตั้งค่าสำหรับแอตทริบิวต์สไตล์ Datalist ไม่กี่ตัว ในตัวอย่างนี้ความกว้างของ Datalist ถูกตั้งค่าเป็น 100%ของระดับหลัก ตัวเลือกที่มีพื้นหลังสีเทาคือการได้รับลักษณะลาย ตัวอย่างนี้ยังแสดงให้เห็นว่าเทมเพลตสามารถมีคำจำกัดความการควบคุมที่ซับซ้อนใด ๆ เพื่อตอบสนองความต้องการในการได้รับเค้าโครงในอุดมคติในแต่ละโครงการ
ในที่สุดการแสดงออกของข้อมูลที่มีผลผูกพันในเทมเพลตนี้มีผลผูกพันในระยะแรกโดยการแปลงคอนเทนเนอร์ dataItem เป็นประเภทของมัน สิ่งนี้จะไม่ทำให้เกิดการเชื่อมโยงในภายหลังของการเชื่อมโยงในภายหลังของการเชื่อมโยงในภายหลังของการใช้ databinder.eval (ดังแสดงใน Repeater1) อย่างไรก็ตามวิธีนี้อาจทำให้สามารถอ่านได้ไม่ดี ตัวอย่างต่อไปนี้ยังให้ตัวอย่างนิพจน์ที่เรียกใช้วิธี getColorName (วิธีนี้ถูกนำไปใช้ในไฟล์ที่รองรับในหน้านี้)
Datalist1.cs:
ตัวอย่างเนมสเปซ {
ยืดหยุ่น
คลาสสาธารณะ Datalist1Page: หน้า {
นักอนุรักษ์ข้อมูลที่ได้รับการป้องกัน
สตริงป้องกัน getColorName (สี C) {
กลับ
Typedescriptor.getConverter (typeof (สี))
-
prive void loadpeicallist () {
// สร้างแหล่งข้อมูล
บุคคล [] คน = คนใหม่ [] {
คนใหม่ (Nikhil Kothari, color.green),
คนใหม่ (Steve Millet, color.purple), color.purple),
คนใหม่ (Chris Anderson, color.blue), color.blue,
คนใหม่ (Mike Pope, Color.orange),
คนใหม่ (Anthony Moore, color.yllow),
คนใหม่ (จอนจุง, color.mediumaquamarine),
คนใหม่ (Susan Warren, Color.slateBlue)
คนใหม่ (Izzy Gryko, Color.Red)
-
// ตั้งค่าแหล่งข้อมูลของการควบคุม
PeicalDatalist.datasource = Pesple;
// และทำให้การควบคุมใช้แหล่งข้อมูลนี้เพื่อสร้างโครงการ
peicaldatalist.databind ();
-
ได้รับการป้องกันการแทนที่โมฆะ overoad (eventargs e) {{
base.onload (e);
ถ้า (! isPostBack) {
// ดูหน้านี้เป็นครั้งแรก
loadpeicallist ();
-
-
-
บุคคลชั้นเรียนที่ปิดผนึกสาธารณะ {
ชื่อสตริงส่วนตัว;
Prive Color Fightecolor;
บุคคลสาธารณะ (ชื่อสตริง, Color Fightecolor) {{
this.name = ชื่อ;
this.favoriTecolor = ightecolor;
-
สีสาธารณะที่เป็นที่ชื่นชอบสี {
Geturn Favoritecolor;}
-
ชื่อสตริงสาธารณะ {
ชื่อ geturn;}
-
-
-
ในหน้านี้แอตทริบิวต์ DataSource ของตัวควบคุมถูกตั้งค่าผ่านการตั้งค่าโปรแกรมซึ่งตัดสินในไฟล์ ASPX ผลลัพธ์ของทั้งสองวิธีเหมือนกัน ไม่สามารถเลือกวิธีการประเภทใดคุณต้องเรียกใช้วิธี Databind เพื่อให้การควบคุมสามารถแสดงรายการแหล่งข้อมูลและสร้างรายการที่ต้องการระบุ
แหล่งข้อมูลที่ใช้ในตัวอย่างนี้เป็นอาร์เรย์ที่เรียบง่ายของวัตถุบุคคล เนื่องจากแต่ละอาร์เรย์ใช้วิธี icollection อาร์เรย์จึงเหมาะสำหรับแหล่งข้อมูล สิ่งนี้แสดงให้เห็นถึงความยืดหยุ่นที่สามารถรับได้เมื่อโครงสร้างข้อมูลและประเภทสามารถรับได้เมื่อสามารถรับแหล่งข้อมูลได้
ตัวอย่าง Datalist1 แนะนำแนวคิดต่อไปนี้:
กำหนด HTML UI ที่หลากหลายในเทมเพลต
ใช้อาร์เรย์แบบง่ายเป็นแหล่งข้อมูล
ตั้งค่าแหล่งข้อมูลผ่านโปรแกรม
การแสดงออกที่หลากหลายอนุญาตในไวยากรณ์การเชื่อมโยงข้อมูล