VB.Net Gridview
Gridview
Gridview ใช้ทำอะไร
ใช้แสดงผลข้อมูลอ้างอิงจาก table โดยที่คอลัมน์คือฟิลด์ และแถวคือระเบียน ตัว Gridview เองสามารถมี Interactive ได้ด้วย เช่น เลือกแถว เรียงลำดับ แก้ไข เป็นต้น
Ref: Gridview
Gridview controls
- Binding to data source
- ทำ Sort
- Update และ Delete
- ทำ Paging
- เลือกแถว
- เข้าถึง Object model ของ Gridview เพื่อตั้งค่า property ต่าง ๆ หรือ event ต่าง ๆ ได้
- ฟิลด์ที่เป็นคีย เป็นได้หลายตัว
- ฟิลด์ข้อมูลสำหรับคอลัมน์ลิงก์
Column Fields
ปกติ Column ใน Gridview จะถูกสร้างด้วยอ็อบเจ็กต์ AutoGeneratedField (สืบทอดจาก BoundField) เพราะว่าโดย Default ค่าใน Property AutoGenerateColumns นั้นถูกตั้งค่าให้เป็น true แต่หาก Property ดังกล่าวนั้นถูกตั้งค่าให้เป็น false เราสามารถสร้าง Column ประเภทต่าง ๆ เองเพิ่มเติมได้
| Type | Description |
|---|---|
| BoundField | แสดงค่าตาม Data source ฟิลด์ประเภทนี้เป็น Default ให้กับ Gridview |
| ButtonField | แสดงปุ่มกดบนฟิลด์ใน เช่น ปุ่มเพิ่ม ลบ |
| CheckBoxField | แสดง Checkbox ให้แต่ละฟิลด์ |
| CommandField | ตั้งค่าให้แสดงปุ่มการเลือก แก้ไข หรือลบได้ |
| HyperLinkField | แสดงค่าตาม Data source ให้เป็นแบบลิงก์ |
| ImageField | แสดงภาพในฟิลด์ |
| TemplateField | ฟิลด์ที่สามารถ Custom ได้ |
จัดการกับ UI
เราสามารถตั้งค่า Property เพื่อกำหนด Style ให้กับ Gridview ได้
| Style property | Description |
|---|---|
| AlternatingRowStyle | ใช้แสดง Style สลับกันระหว่าง RowStyle กับตัว AlternatingRowStyle |
| EditRowStyle | แสดง Style ขณะกำลังแก้ไข |
| EmptyDataRowStyle | แสดง Style บนแถว EmptyDataTemplate |
| FooterStyle | แสดง Style บนแถว Footer |
| HeaderStyle | แสดง Style บนแถว Header |
| PagerStyle | แสดง Style บนแถวแสดงตัวดัชนี Page |
| RowStyle | แดสง Style บนแถว |
| SelectedRowStyle | แสดง Style ขณะที่แถวนั้นถูกเลือก |
| SortedAscendingCellStyle | แสดง Style บนคอลัมน์ที่ถูกเรียงลำดับจากน้อยไปมาก |
| SortedAscendingHeaderStyle | แสดง Style บนหัวคอลัมน์ ที่ถูกเรียงลำดับจากน้อยไปมาก |
| SortedDescendingCellStyle | แสดง Style บนคอลัมน์ที่ถูกเรียงลำดับจากมากไปน้อย |
| SortedDescendingHeaderStyle | แดสง Style บนหัวคอลัมน์ที่ถูกเรียงลำดับจากมากไปน้อย |
Events
เราสามารถ custom route ใน event ต่าง ๆ ได้
| Event | Description |
|---|---|
| PageIndexChanged | Event จะเกิดขึ้นเมื่อปุ่ม Pager ถูกคลิ้กแต่เกิดขึ้นต่อจาก Event PageIndexchanging |
| PageIndexChanging | Event จะเกิดขึ้นเมื่อปุ่ม Pager ถูกคลิ้กแต่เกิดขึ้นก่อน Event PageIndexChanged |
| RowCancelingEdit | Event จะเกิดเมื่อปุ่ม Cancel บนแถวถูกคลิ้กก่อนที่ Gridview control จะออกจากโหมดแก้ไขนั้น |
| RowCommand | Event จะเกิดขึ้นเมื่อปุ่มใด ๆ บน Gridview ถูกคลิ้ก |
| RowCreated | Event จะเกิดขึ้นเมื่อมีแถวใหม่ถุกสร้างขึ้น Event นี้มักจะใช้กับการแก้ไข content ของแถว |
| RowDataBound | Event จะเกิดเมื่อ data row ถูกผูกกับ data ใน Gridview control แล้ว Event มักจะใช้สำหรับแก้ไข contents ของแถว |
| RowDeleted | Event จะเกิดขึ้นเมื่อปุ่ม Delete ของ row นั้น ๆ ถุกคลิ้ก แต่จะเกิดขึ้นหลัจาก Gridview control ลบ data source นั้นแล้ว มักจะใช้ Event นี้เพื่อเช็คผลการลบ |
| RowDeleting | Event จะเกิดขึ้นเมื่อปุ่ม Delete ของ Row นั้น ๆ ถูกคลิ้กและก่อนที่ข้อมูลนั้นจะถูกลบออกจาก Data source Event นี้มักจะใช้เพื่อยกเลิกการลบ |
| RowEditing | Event นี้ปุ่มแก่ไขถูกคลิ้กแต่ก่อนที่ Gridview control จะเริ่มเข้าแก้ไข Event นี้มักจะใช้เพื่อการยกเลิกการแก้ไข |
| RowUpdated | Event นี้เกิดขึ้นเมื่อปุ่มอัปเดตถูกคลิ้ก แต่เกิดขึ้นหลังจาก Gridview control อัปเดตแถวเรียบร้อยแล้ว Event นี้มักจะใช้เพื่อเช็คผลการอัปเดต |
| RowUpdating | Event นี้เกิดขึ้นเมื่อปุ่มอัปเดตถูกคลิ้ก แต่เกิดขึ้นก่อน Gridview control จะอัปเดตแถว Event นี้มักจะใช้เพื่อยกเลิกการอัปเดต |
| SelectedIndexChanged | Event นี้จะเกิดขึ้นเมื่อปุ่ม Select ถูกคลิ้กแต่เกิดขึ้นหลังจาก Gridview control จัดการการเลือก Event นี้มักจะใช้ทำงานบางอย่างหลังจากแถวนั้นถูกเลือกใน Gridview control แล้ว |
| SelectedIndexChanging | Event นี้จะเกิดขึ้นเมื่อปุ่ม Select ถูกคลิ้กแต่เกิดขึ้นก่อน Gridview control จัดการการเลือก Event นี้มักใช้เพื่อยกเลิกการเลือก |
| Sorted | Event นี้เกิดขึ้นเมื่อ Hyperlink ของ Sort column ถูกคลิ้ก แต่เกิดขึ้นหลังจาก Gridview control จัดการกับการเรียงลำดับแล้ว Event นี้มักใช้เพื่อจัดการงานบางอย่างหลังจากคลิ้ก hyperlink เพื่อเรียงลำดับ |
| Sorting | Event นี้เกิดขึ้นเมื่อ Hyperlink ของ Sort colomn ถูกคลิ้ก แต่เกิดขึ้นก่อนที่ Gridview control จัดการกับการเรียงลำดับ Event นี้มักใช้เพื่อยกเลิกการเรียงลำดับ หรือ custom routine การเรียง |