|
DataGridView / Checkbox (DataGridViewCheckBoxColumn) สร้าง DataSource ให้กับ Checkbox (VB.Net , C#) |
DataGridView / Checkbox (DataGridViewCheckBoxColumn) สร้าง DataSource ให้กับ Checkbox (VB.Net , C#) ในหัวข้อนี้เราจะมาเรียนรู้วิธีการสร้าง CheckBox ใน DataGridView ของ Windows Form Application ซึ่งโดยปกติทั่วไปแล้ว CheckBox จะนิยมใช้ใน DataGridView ในเคสต้องการเลือกข้อมูลได้หลาย ๆ รายการ ซึ่งอาจจะนำไปใช้ในการเลือกรายการ หรือเลือกรายการแล้วลบ (Delete) ข้อมูลของรายการที่เลือกที่ได้จาก CheckBox ใน DataGridView ตัวอย่างนี้มีทั้ง VB.Net และ C#
DataGridView / CheckBox (DataGridViewCheckBoxColumn) and CheckBox Checked
ตอนที่ 1 : DataGridView (Win Form) สร้าง Custom แบบ Column/Header และการ Summary ผลรวม (VB.Net,C#)
เพิ่ม Column ขึ้นมาใหม่ชื่อว่า Check โดยเลือกเป็นแบบ DataGridViewCheckBoxColumn กำหนด Name และ Header text ดังรูป
ได้คอลัมบ์ CheckBox ดังรูป และสร้าง Button สำหรับ Label ในการแสดงผลรายการที่เลือก
DataGridViewCheckBoxColumn ของคอลัมบ์ Check
Code ของ VB.Net
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
'*** Master Data Table ***'
' Create Datable
Dim dtTable As DataTable = New DataTable("myTable")
' Create Column Header
dtTable.Columns.Add(New DataColumn("ColID", GetType(Integer)))
dtTable.Columns.Add(New DataColumn("ColFullName", GetType(String)))
dtTable.Columns.Add(New DataColumn("ColPoint", GetType(Integer)))
dtTable.Columns.Add(New DataColumn("ColCountryCode", GetType(String)))
' Add Rows
dtTable.Rows.Add(1, "Weerachai Nukitram", 10, "TH")
dtTable.Rows.Add(2, "Wisarut Nukitram", 20, "US")
dtTable.Rows.Add(3, "Wipa Nukitram", 30, "TH")
' Bind to DataGridView
Me.myDataGridView.AutoGenerateColumns = False
Me.myDataGridView.AllowUserToAddRows = False
Me.myDataGridView.DataSource = dtTable
End Sub
Private Sub btnSubmit_Click(sender As System.Object, e As System.EventArgs) Handles btnSubmit.Click
' Get Select CheckBox
Dim strCheck As String = String.Empty
For Each row As DataGridViewRow In Me.myDataGridView.Rows
If row.Cells("CHECK").Value = True Then
strCheck = strCheck & row.Cells("ID").Value & ", "
End If
Next
Me.lblResult.Text = String.Format("Your selected : {0}", strCheck)
End Sub
Code ของ C#
private void Form1_Load(object sender, EventArgs e)
{
//*** Master Data Table ***'
// Create Datable
DataTable dtTable = new DataTable("myTable");
//Create Column Header
dtTable.Columns.Add(new DataColumn("ColID", typeof(int)));
dtTable.Columns.Add(new DataColumn("ColFullName", typeof(string)));
dtTable.Columns.Add(new DataColumn("ColPoint", typeof(int)));
dtTable.Columns.Add(new DataColumn("ColCountryCode", typeof(string)));
// Add Rows
dtTable.Rows.Add(1, "Weerachai Nukitram", 10, "TH");
dtTable.Rows.Add(2, "Wisarut Nukitram", 20, "US");
dtTable.Rows.Add(3, "Wipa Nukitram", 30, "TH");
// Bind to DataGridView
this.myDataGridView.AutoGenerateColumns = false;
this.myDataGridView.AllowUserToAddRows = false;
this.myDataGridView.DataSource = dtTable;
}
private void btnSubmit_Click(object sender, EventArgs e)
{
// Summary Total Point
string strCheck = string.Empty;
foreach (DataGridViewRow row in this.myDataGridView.Rows)
{
if (Convert.ToBoolean(row.Cells["CHECK"].Value) == true)
{
strCheck = strCheck + row.Cells["ID"].Value + ", ";
}
}
this.lblResult.Text = String.Format("Your selected : {0}", strCheck);
}
คำอธิบาย
' Get Select CheckBox
Dim strCheck As String = String.Empty
For Each row As DataGridViewRow In Me.myDataGridView.Rows
If row.Cells("CHECK").Value = True Then
strCheck = strCheck & row.Cells("ID").Value & ", "
End If
Next
Me.lblResult.Text = String.Format("Your selected : {0}", strCheck)
เป็นการ Loop ข้อมูลของ DataGridView โดยหาว่า CheckBox ใน Column ของ CHECK ใน Rows ใดที่มีค่า Value เป็น True และค่อยคำค่าของ ID มาแสดง
Screenshot
แสดงผลลัพธ์
ผลลัพธ์ที่ได้ CheckBox บน DataGridView และรายการเลือก Checkbox
|