บทนำ
บทความนี้อธิบายตัวอย่างออลอินกรอบที่พร้อมใช้งานสำหรับการดาวน์โหลด โค้ดตัวอย่างนี้สาธิตวิธีการสร้างแอพลิเคชันแกลเลอรีรูป โดยใช้ตัวควบคุม DataList ใน ASP.NET คุณสามารถเรียกดูแพคเกจตัวอย่างจากไอคอนดาวน์โหลดต่อไปนี้
ระดับความยาก
ข้อมูลการดาวน์โหลด
เมื่อต้องการดาวน์โหลดโค้ดตัวอย่างนี้ คลิกการเชื่อมโยงต่อไปนี้:
ภาพรวมทางเทคนิค
คุณอาจพบอย่างกว้างขวางใช้แกลเลอรีรูปในไซต์เครือข่ายทางสังคม เว็บไซต์ส่วนบุคคล และเว็บไซต์อีบิสซิมาก ตัวอย่างเช่น คุณอาจใช้แกลเลอรีรูปจะแสดงไลบรารีของรูปภาพที่อัปโหลดส่วนบุคคลบนเว็บไซต์ส่วนบุคคล นำเสนอภาพนิ่งคือ เครื่องมือได้รับความนิยมในการแสดงรูปภาพบนเว็บไซต์ด้วย โค้ดตัวอย่างนี้สาธิตวิธีการใช้DataListและImageButtonควบคุม ASP.NET เพื่อสร้างแกลเลอรีรูปที่ มีการนำรูปภาพ คุณสามารถคลิบนรูปขนาดย่อในตัวควบคุมDatalistเพื่อแสดงรูปของรูปบนหน้า โค้ดตัวอย่างนี้อ่านเส้นทางรูปจากไดเรกทอรีบางอย่างลงในอาร์เรย์แบบFileInfo จากนั้น อาร์เรย์FileInfoถูกใช้เพื่อเติมข้อมูลตารางข้อมูลวัตถุแบบกำหนดเองที่ถูกผูกไว้กับตัวควบคุมDatalist โค้ดตัวอย่างนี้ประมวลผลระบบแบ่งหน้าแบบกำหนดเองที่อนุญาตให้ห้ารูปที่จะแสดงในแนวนอนบนหน้าเดียว กัน ปุ่มเชื่อมโยงต่อไปนี้จะใช้เพื่อการใช้งานระบบแบ่งหน้าแบบกำหนดเอง:
-
แรก
-
ก่อนหน้านี้
-
Next
-
ล่าสุด
หมายเหตุ เราขอแนะนำให้ คุณใช้วิธีนี้เพื่อโหลดรูปไม่เกินห้าในแต่ละครั้งคุณยังสามารถตั้งค่าคุณสมบัติSelectedIndexสำหรับตัวควบคุมDataListเพื่อจำกัดจำนวนของรูปขนาดย่อที่คุณสามารถเลือก เพื่อบ่งชี้ว่า รูปภาพที่เลือก คุณสามารถตั้งค่าคุณสมบัติสำหรับตัวควบคุมDataList SelectedStyle
ภาพรวมตัวอย่าง
โค้ดตัวอย่างนี้ประกอบด้วยสามส่วนต่อไปนี้:
-
ตัวควบคุมรูปภาพสำหรับการแสดงรูปภาพขนาดใหญ่เมื่อมีเลือก โดยผู้ใช้
-
ตัวควบคุม DataList สำหรับรายการรูปขนาดย่อสำหรับการนำทาง
-
สี่เชื่อมโยงปุ่มสำหรับการใช้แถบการนำทาง
คุณสามารถดาวน์โหลดโค้ดตัวอย่าง และทำตามขั้นตอนเหล่านี้เพื่อสร้างแกลเลอรีรูปผิด:
-
สร้างโปรแกรมประยุกต์บนเว็บ ASP.NET C# ที่ชื่อCSASPNETDataListImageGalleryใน Microsoft Visual Studio 2008
-
ลากตัวควบคุมDataListลงบนหน้า แล้ว ใช้รหัสต่อไปนี้เพื่อตั้งค่าคุณสมบัติRepeatColumnsเป็น5และตั้งค่าคุณสมบัติRepeatDirectionเป็นแนวนอน:<asp:DataList ID="DataList1" runat="server" RepeatColumns="5" RepeatDirection="Horizontal" >
-
ใช้รหัสต่อไปนี้เพื่อตั้งค่าแม่แบบในตัวควบคุมDataListเพื่อผูกกับเขตข้อมูล URL:<ItemTemplate> <asp:ImageButton ID="IB_tn" runat="server" ImageUrl='<%# "/Image/" + Eval("Url") %>' Width="100px" Height="100px" OnClick="IB_tn_Click" CommandArgument='<%# Container.ItemIndex %>' /></ItemTemplate>
-
ใช้รหัสต่อไปนี้เพื่อเพิ่มปุ่มสี่ปุ่มนำทางในเพจ:<asp:LinkButton ID="lbnFirstPage" Text="First" CommandName="first" OnCommand="Page_OnClick" runat="server" Width="125px" /><asp:LinkButton ID="lbnPrevPage" Text="Prev" CommandName="prev" OnCommand="Page_OnClick" runat="server" Width="125px" /><asp:LinkButton ID="lbnNextPage" Text="Next" CommandName="next" OnCommand="Page_OnClick" runat="server" Width="125px" /><asp:LinkButton ID="lbnLastPage" Text="Last" CommandName="last" OnCommand="Page_OnClick" runat="server" Width="125px" />
-
เปิดแฟ้มรหัส Default.aspx.cs
-
ใช้รหัสต่อไปนี้เพื่อนำเข้า namespaces System.Data และ System.IO ไปยังหน้า:using System.Data;using System.IO;
-
แทรกรหัสต่อไปนี้เพื่อสร้างสองคุณสมบัติใหม่ Page_Index และ Page_Count://property for current page indexpublic int Page_Index{ get { return (int)ViewState["_Page_Index"]; } set { ViewState["_Page_Index"] = value; }}//property for total page countpublic int Page_Count{ get { return (int)ViewState["_Page_Count"]; } set { ViewState["_Page_Count"] = value; }}
-
แทรกรหัสต่อไปนี้เมื่อต้องการดูหมายเลขของรูป://return total number of imagesprotected int ImageCount(){ DirectoryInfo di = new DirectoryInfo(Server.MapPath("/Image/")); FileInfo[] fi = di.GetFiles(); return fi.GetLength(0);}
-
แทรกรหัสต่อไปนี้เมื่อต้องการผูกตัวควบคุมDataList ://return the data source for DataList protected DataTable BindGrid() { //get all image paths DirectoryInfo di = new DirectoryInfo(Server.MapPath("/Image/")); FileInfo[] fi = di.GetFiles(); //save all paths to the DataTable as the data source DataTable dt = new DataTable(); DataColumn dc = new DataColumn("Url", typeof(System.String)); dt.Columns.Add(dc); int lastindex = 0; if (Page_Count == 0 || Page_Index == Page_Count - 1) { lastindex = ImageCount(); } else { lastindex = Page_Index * PageSize + 5; } for (int i = Page_Index * PageSize; i < lastindex; i++) { DataRow dro = dt.NewRow(); dro[0] = fi[i].Name; dt.Rows.Add(dro); } return dt; }
-
แทรกรหัสต่อไปนี้เพื่อจัดการกับเหตุการณ์ปุ่มหน้า://handle the navigation button event public void Page_OnClick(Object sender, CommandEventArgs e) { if (e.CommandName == "first") { Page_Index = 0; lbnFirstPage.Enabled = false; lbnPrevPage.Enabled = false; lbnNextPage.Enabled = true; lbnLastPage.Enabled = true; } else if (e.CommandName == "prev") { Page_Index -= 1; if (Page_Index == 0) { lbnFirstPage.Enabled = false; lbnPrevPage.Enabled = false; lbnNextPage.Enabled = true; lbnLastPage.Enabled = true; } else { lbnFirstPage.Enabled = true; lbnPrevPage.Enabled = true; lbnNextPage.Enabled = true; lbnLastPage.Enabled = true; } } else if (e.CommandName == "next") { Page_Index += 1; if (Page_Index == Page_Count - 1) { lbnFirstPage.Enabled = true; lbnPrevPage.Enabled = true; lbnNextPage.Enabled = false; lbnLastPage.Enabled = false; } else { lbnFirstPage.Enabled = true; lbnPrevPage.Enabled = true; lbnNextPage.Enabled = true; lbnLastPage.Enabled = true; } } else if (e.CommandName == "last") { Page_Index = Page_Count - 1; lbnFirstPage.Enabled = true; lbnPrevPage.Enabled = true; lbnNextPage.Enabled = false; lbnLastPage.Enabled = false; } DataList1.SelectedIndex = 0; DataList1.DataSource = BindGrid(); DataList1.DataBind(); Image1.ImageUrl = ((Image)DataList1.Items[0].FindControl("IB_tn")).ImageUrl; }
-
แทรกรหัสต่อไปนี้เพื่อจัดการกับรูปภาพคลิกเหตุการณ์://handle the thumbnail image selecting event protected void IB_tn_Click(object sender, EventArgs e) { ImageButton ib = (ImageButton)sender; Image1.ImageUrl = ib.ImageUrl; DataList1.SelectedIndex = Convert.ToInt32(ib.CommandArgument); }
ประเภทของเทคโนโลยี
-
ASP.NET 2.0
-
ASP.NET 3.5
-
ASP.NET 4.0
ภาษา
ตัวอย่างรหัสนี้มีอยู่ในภาษาการเขียนโปรแกรมต่อไปนี้:
|
ภาษา |
ชื่อโครงการ |
|---|---|
|
Visual C# |
CSASPNETDataListImageGallery |
|
Visual Basic.NET |
VBASPNETDataListImageGallery |
ข้อมูลอ้างอิง
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับตัวควบคุมเซิร์ฟเวอร์DataListแวะไปที่เว็บไซต์ Microsoft สำหรับนักพัฒนา (MSDN) ต่อไปนี้:
ข้อมูลทั่วไปเกี่ยวกับตัวควบคุมเซิร์ฟเวอร์ DataListสำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการตัดสินใจว่า จะใช้DataGrid, DataListและRepeaterควบคุม แวะไปเว็บไซต์ MSDN ต่อไปนี้:
วิธีการตัดสินใจว่า จะใช้ตัวควบคุม DataGrid, DataList และ Repeaterสำหรับข้อมูลเพิ่มเติมเกี่ยวกับการแบ่งหน้าข้อมูลที่มีประสิทธิภาพกับตัวควบคุม ASP.NET 2.0 DataListและObjectDataSourceแวะไป websit ต่อไปนี้:
ข้อมูลเพิ่มเติม
กรอบงานรหัสออลอินคืออะไร
กรอบงานรหัสออลอินแสดงเทคนิคการพัฒนา Microsoft ส่วนใหญ่ โดยใช้ตัวอย่างรหัสในภาษาการเขียนโปรแกรมต่าง ๆ ตัวอย่างแต่ละอย่างรอบคอบเลือก ส่วนประกอบ และจัดทำเอกสารเพื่อแสดงสถานการณ์สมมติรหัสทั่วไปหนึ่ง สำหรับข้อมูลเพิ่มเติมเกี่ยวกับกรอบงานรหัสออลอิน แวะไปที่เว็บไซต์ของ Microsoft ต่อไปนี้:
วิธีการค้นหาตัวอย่างรหัส Framework ออลอินเพิ่มเติม
เมื่อต้องการค้นหาตัวอย่างรหัส Framework ออลอินเพิ่มเติม ค้นหา "kbcodefx" ร่วมกับคำสำคัญที่เกี่ยวข้องใน Microsoft สนับสนุนเว็บไซต์ หรือ แวะไปที่เว็บไซต์ของ Microsoft ต่อไปนี้:
คำปฏิเสธการเผยแพร่อย่างรวดเร็ว
Microsoft corporation และ/หรือของซัพพลายเออร์แต่ละรายทำไม่ได้ยืนยันใด ๆ เกี่ยวกับความเหมาะสม ความน่าเชื่อถือ หรือความถูกต้องของข้อมูลและกราฟิกที่เกี่ยวข้องที่มีอยู่ในที่นี้ ข้อมูลและกราฟิกที่เกี่ยวข้องทั้งหมดดังกล่าวไว้ให้ "ตามที่เป็นอยู่" โดยไม่มีการรับประกันใด ๆ Microsoft และ/หรือซัพพลายเออร์ที่เกี่ยวข้องแปลง disclaim รับประกันและเงื่อนไขที่เกี่ยวข้องกับข้อมูลนี้ทั้งหมด และที่เกี่ยวข้องกับกราฟิก รวมถึงการรับประกันโดยนัยทั้งหมดและเงื่อนไขของความสามารถในเชิงพาณิชย์ ความเหมาะสมสำหรับวัตถุประสงค์เฉพาะ workmanlike ความพยายาม ชื่อเรื่อง และที่ไม่ใช่การละเมิด โดยเฉพาะอย่างยิ่งตกลงว่า ไม่ จะ Microsoft และ/หรือซัพพลายเออร์ที่รับผิดชอบใด ๆ เกิดจากทางตรง ทางอ้อม โทษ พิเศษ ต่อการเสียหาย หรือเสียหายใด ๆ ก็ตามรวมถึง แต่ไม่ เสียหายสำหรับการใช้ ข้อมูล หรือ กำไร เกิดจากทั้งหมด หรือ ในวิธีใด ๆ ที่เชื่อมโยงกับการใช้งานหรือไม่สามารถใช้ข้อมูลและกราฟิกที่เกี่ยวข้องอยู่ในที่นี้ ว่าตามสัญญา สูญ ความผิด หนี้สินที่เข้มงวด หรืออย่างอื่น ใด แม้ว่า Microsoft หรือของซัพพลายเออร์ใด ๆ มีการ คำแนะนำเกี่ยวกับเสียหายที่อาจเกิดขึ้น