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 การเรียง