สำหรับตอนที่ 3 จะสาธิต
- การกรองข้อมูล
- จัดเรียงข้อมูล
- การใช้คอนโทรลร่วมกันเพื่อการค้นหา
- การจัดกลุ่มข้อมูล
- การใช้ QueryExtender
- การใช้ Like เพื่อการค้นหาข้อมูล
1.การกรองผูู้เรียนและแสดงผล
ในบทนี้คู่มือได้สอนการกรองข้อมูล Student จาก Person ทั้งหมด ซึ่ง Student จะมี่ค่าขอมูลวันลงทะเบียน (ดูจากข้อมูลใน database)
1.1 เปิดเพจ Student.aspx แล้วคลิกที่คอนโทรล entity datasouce
1.2 แล้วดูที่หน้าต่าง properties ไปที่ Where แล้วพิมพ์ตามนี้
1.3 จากนั้นให้ทดลองรันเพจ จะได้ผลดังนี้
2.การเรียงข้อมูลก่อนแสดงผล
เราจะเรียงข้อมูล Student จาก LastName สามารถทำได้ดังนี้
2.1 ที่เพจ Student.aspx เดิมนี้ให้คลิกที่ entity datasource control ไปที่หน้าต่าง properties แล้วดูที่คุณสมบัติ OrderBy แล้วกรอกตามนี้
2.2 รันเพจจะได้ผลตามนี้
3. การใช้คอนโทรลร่วมกันเพื่อการค้นหาข้อมูล
การค้นหาข้อมุลแบบนี้เรียกว่าใช้ control parameter เพื่อส่งค่าแล้วนำไปค้นหาด้วยคุณสมบัติ Where
3.1 ให้เปิดเพจ Course.aspx แล้วคลิกที่คอนโทรล CourseEntityDataSource แล้วดูที่หน้าต่าง properties แล้วคลิกที่จุด … ในช่อง Where
3.2 เมื่อปรากฏหน้าต่าง Expression ให้คลิกเพื่อเลือกที่ช่อง Auto gen the where expression…
3.3 แล้วคลิกปุ่ม Add Parameter ที่ช่อง Name พิมพ์ฟิล์ดที่เราต้องการนำค่าไปเปรียบเทียบคือ DepartmentID
3.4 ที่ช่อง Parameter Source ให้เลือก Control จากนั้นที่ช่อง ControlID ให้เลือกเป็นชื่อของ dropdownlist คือ dropDepartment
3.5 คลิกที่ Show advance.. จะปรากฏคุณสมบัติเพิ่มเติมให้มองหา Type แล้วเปลี่ยนให้เป็น Int32 แล้วคลิก OK เพื่อปิดหน้าต่างการกำหนดค่า
3.6 จากนั้นให้แก้ไขคอนโทรล CourseGridView ในหน้า Source ดังนี้
<asp:GridView ID=”CoursesGridView” runat=”server” AutoGenerateColumns=”False”
DataKeyNames=”CourseID” DataSourceID=”CoursesEntityDataSource”>
<Columns>
<asp:BoundField DataField=”CourseID” HeaderText=”ID” ReadOnly=”True”
SortExpression=”CourseID” />
<asp:BoundField DataField=”Title” HeaderText=”Title” SortExpression=”Title” />
<asp:BoundField DataField=”Credits” HeaderText=”Credits”
SortExpression=”Credits” />
</Columns>
</asp:GridView>
สำหรับ Gridview นี้จะแสดงเพียง 3 คอลัมเท่านั้น คือรหัสวิชา ชื่อวิชา และหน่วยกิต
3.7 จากนั้นกลับไปดุที่คอนโทรล dropdownlist ให้เรา Enable ที่ AutoPostBack โดยเปลี่ยนให้เป็น True เพื่อให้ส่งค่าทันทีที่เลือกข้อมูลจากคอนโทรลนี้
3.8 ทดลองรันเพจและเปลี่ยนสาขาวิชาจะพบว่าภายใน gridview มีการแสดงผลรายวิชาตามไปด้วย
4. การจัดกลุ่มข้อมูล
ระบบต้องการให้แสดงจำนวนนิสิตที่หน้า About.aspx โดยจัดกลุ่มจากวันที่ Student ลงทะเบียน
4.1 ให้เปิดเพจ About.aspx แล้วแทนที่ข้อความเดิมด้วย
4.2 จากนั้นให้เพิ่ม entity datasource control ลงไป โดยมีเงื่อนไขดังนี้
- เราจะกรองมาเฉพาะ Student เท่านั้น ดูที่ Where
- เราจะจัดกลุ่มจากวันที่ลงทะเบียนเรียน ดูที่ GroupBy
- เราจะจัดกลุ่มและนับจำนวน Student ดูที่ Select
- เราจะจัดเรียนตามวันที่การลงทะเบียน ดูที่ OrderBy
เราจะโค้ดที่หน้า source ได้ดังนี้
4.3 จากนั้นลาก gridview มาวางในเพจและโค้ดตามดังนี้
4.4 จากนั้นลองรันเพจจะได้ผลดังนี้
5.การใช้ QueryExtender
ส่วนนี้เป็นการสาธิตการใช้คอนโทรล QueryExtender เพื่อช่วยการกรองข้อมูล จัดเรียงข้อมูลจาก eds อีกต่อหนึ่ง
5.1 กลับไปที่เพจ Course.aspx แล้วเพิ่มโค้ดเข้าไปส่วนท้ายดังนี้
เมื่อลองคลิก View จะได้ผลดังนี้
5.2 จากนั้นให้เพิ่มคอนโทรล QueryExtender ลงไป โดยระบให้ติดต่อกับคอนโทรล SearchEntityDataSource (บรรทัดที่ 49)
การค้นหาให้ค้นจากอักษรนำหน้า ในฟิลด์ Title (ดูบรรทัดที่ 51)
โดยรับค่าที่ป้อนจากคอนโทรลคือ SearchTextbox (บรรทัดที่ 52)
นอกจากนี้ยังจัดเรียงจากฟิลด์ชื่อสาขาวิชา และมีทิศทางจากน้อยไปมาก (56)
นอกจากนั้นยังเรียงตามชือวิชาอีกด้วย (57)
จากที่กลาวมานี่คือโค้ดใน source view
5.3 สุดท้ายให้เพิ่ม gridview ลงไป
จากโค้ดเราจะแสดงชื่อสาขาวิชา รหัสวิชา ชื่อวิชา หน่วยกิต
5.4 ให้ลองรันเพจนี้ดู
เมื่อไม่ได้ค้นหาวิชาอะไร
เมื่อลองพิมพ์ค่าเพื่อค้นหาลงไป
6. การใช้ Like เพื่อการค้นหาข้อมูล
ส่วนนี้จะสาธิตการใช้ LIkE เพื่อค้นห้าข้อมูล ซึ่งมีลักษณะคล้ายกับการใช้ QueryExtender คอนโทรลดังหัวข้อที่ 5
แต่สำหรับหัวข้อนี้เป็นการแสดงการค้นหาข้อมูลในอีกรูปแบบหนึ่ง ที่สามารถให้ผลการทำงานได้เหมือนกัน หากท่านถนัดแบบใดก็เลือกใช้ตามความต้องการ
สำหรับตอนนี้เราจะสาธิตการค้นหาจากชื่อ หรือสกุลของ Student
6.1 ให้เปิดเพจ Student.aspx และเพิ่มโค้ดนี้ลงไปต่อจากโค้ดเดิม
6.2 และเพิม eds ลงไปโดยให้ติดต่อกับ entity People และที่สำคัญจะต้องระบุเงื่อนไข Where เพื่อกรองคนที่มีวันลงทะเบียนเรียนเท่านั้น และใช้ operator การค้นหา % กับฟิลด์ชื่อ รวมทั้งนามสกุลด้วย
การใช้ % นำหน้าข้อความที่ต้องการค้นหา หมายถึง จะมีอักษรนำหน้าอะไรก็ตามแต่ต้องมีข้อความที่เราระบุลงไป
และในทางกลับกันหากใชั้ % ตามหลังข้อความที่เราระบุ หมายถึง ค้นห้าอักษรที่มีคำตามเป็นอะไรก็ได้ แต่ต้องมีอักษรนำหน้าตามที่เราระบุ
สำหรับตัวอย่างนี้จะใช้ % ทั้งหน้าและหลังข้อความที่เราระบุ (บรรทัด 60)
6.3 จากนั้นสร้าง Gridview และระบุฟิลด์ที่ต้องการแสดงผลตามนี้
6.4 ทดลองรันเพจนี้
สำหรับบทที่ 3 จบเพียงเท่านี้ครับ หวัดดี