C# การ Default ของ DataGridViewComboBoxColumnใน DataGridView
ประมาณนี้ครับ
Code (C#)
for (int i = 0; i < dvg.Rows.Count; i++)
{
dvg.Rows[i].Cells["ComboColumnName"].Value = "string";
}
ที่สำคัญต้องมีชื่อของ Column ด้วยครับ
DataGridView (Win Form) สร้าง Custom แบบ Column/Header และการ Summary ผลรวม (VB.Net,C#)
Date :
2015-09-24 09:46:46
By :
mr.win
เขาว่ากันว่า
Date :
2015-09-24 10:21:30
By :
lamaka.tor
มัน ได้ครับ แต่ error
Date :
2015-09-24 10:36:21
By :
phuriwat
Code (C#)
//combobox name = combobox_receive_material
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
dataGridView1.Rows[i].Cells["combobox_receive_material"].Value = "ปกติ";
}
Date :
2015-09-24 10:37:21
By :
phuriwat
ผม โหลด จาก database อ่าครับ ค่าของ ปกติกับล็อก ครับ
คือผม มี 2 grid นะครับ คือโหลดข้อมูลตอนแรกที่ grid2 แล้วเลือกมาไว้ grid1
grid1 จะมีไห้เลือกสถานะ ปกติ กับ ล็อก
เมื่อ โยนข้อมูล ข้าม grid2 มา grid1 ก็ จะแสดงสถานะ เลย ว่า ปกติ
Code (C#)
string input_combobox = "SELECT * FROM statuses";
SqlDataAdapter adapter = new SqlDataAdapter(input_combobox, conn);
DataTable dt = new DataTable();
adapter.Fill(dt);
this.combobox_receive_material.DataSource = dt; //this.combobox_receive_material คือ datagridviewconboboxcell
this.combobox_receive_material.ValueMember = "id";
this.combobox_receive_material.DisplayMember = "name";
อันนี้ คือ ไห้มัน โหลด ลง grid
Code (C#)
private void button2_Click_1(object sender, EventArgs e)
{
textboxEnable();
foreach (DataGridViewRow item in dataGridView2.Rows)
{
if ((bool)item.Cells[0].Value == true)
{
int n = dataGridView1.Rows.Add();
dataGridView1.Rows[n].Cells[0].Value = false;
dataGridView1.Rows[n].Cells[1].Value = item.Cells[1].Value.ToString();
dataGridView1.Rows[n].Cells[2].Value = item.Cells[2].Value.ToString();
dataGridView1.Rows[n].Cells[3].Value = item.Cells[3].Value.ToString();
dataGridView1.Rows[n].Cells[4].Value = item.Cells[4].Value.ToString();
dataGridView1.Rows[n].Cells[5].Value = item.Cells[5].Value.ToString();
dataGridView1.Rows[n].Cells[6].Value = item.Cells[6].Value.ToString();
dataGridView1.Rows[n].Cells[7].Value = item.Cells[7].Value.ToString();
dataGridView1.Rows[n].Cells[8].Value = item.Cells[8].Value.ToString();
dataGridView1.Rows[n].Cells[11].Value = item.Cells[9].Value.ToString();
}
}
//combobox name = combobox_receive_material
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
dataGridView1.Rows[i].Cells["combobox_receive_material"].Value = "ปกติ";
}
List<DataGridViewRow> toDelete = new List<DataGridViewRow>();
foreach (DataGridViewRow row in dataGridView2.Rows)
{
bool s = Convert.ToBoolean(row.Cells[0].Value);
if (s == true)
{
toDelete.Add(row);
}
}
foreach (DataGridViewRow row in toDelete)
{
dataGridView2.Rows.Remove(row);
}
panelControl1.Visible = false;
}
อันนี้คือโยนข้าม แล้วก็ ไห้ สแดงสถานะว่า ปกติ อ่าครับ แต่ error
Date :
2015-09-24 10:51:08
By :
phuriwat
คือ combobox ใน grid1 ผมสร้าง cell ไหม่คือ testcombobox name คือ combobox_receive_material อ่าครับ
Date :
2015-09-24 11:01:50
By :
phuriwat
ได้แล้วครับ ขอบคุณ ครับ
Date :
2015-09-24 13:34:59
By :
phuriwat
Code (C#)
string input_combobox = "SELECT * FROM statuses";
SqlDataAdapter adapter = new SqlDataAdapter(input_combobox, conn);
DataTable dt = new DataTable();
adapter.Fill(dt);
this.combobox_receive_material.DataSource = dt; //this.combobox_receive_material คือ datagridviewconboboxcell
this.combobox_receive_material.ValueMember = "id";
this.combobox_receive_material.DisplayMember = "name";
this.combobox_receive_material.DataPropertyName = ? // ตัวนี้หายไป
อ้างจากด้านบนแสดงว่าต้องอิงกับ "id" ไม่ใช่ "name"
Code (C#)
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
dataGridView1.Rows[i].Cells["combobox_receive_material"].Value = 1; // "id"
}
ลองแบบนี้ดูครับ
Code (C#)
private void button2_Click_1(object sender, EventArgs e)
{
textboxEnable();
foreach (DataGridViewRow item in dataGridView2.Rows)
{
if ((bool)item.Cells[0].Value == true)
{
int n = dataGridView1.Rows.Add();
dataGridView1.Rows[n].Cells[0].Value = false;
dataGridView1.Rows[n].Cells[1].Value = item.Cells[1].Value.ToString();
dataGridView1.Rows[n].Cells[2].Value = item.Cells[2].Value.ToString();
dataGridView1.Rows[n].Cells[3].Value = item.Cells[3].Value.ToString();
dataGridView1.Rows[n].Cells[4].Value = item.Cells[4].Value.ToString();
dataGridView1.Rows[n].Cells[5].Value = item.Cells[5].Value.ToString();
dataGridView1.Rows[n].Cells[6].Value = item.Cells[6].Value.ToString();
dataGridView1.Rows[n].Cells[7].Value = item.Cells[7].Value.ToString();
dataGridView1.Rows[n].Cells[8].Value = item.Cells[8].Value.ToString();
dataGridView1.Rows[n].Cells[11].Value = item.Cells[9].Value.ToString();
dataGridView1.Rows[n].Cells["combobox_receive_material"].Value = "ปกติ";
dataGridView2.Rows.Remove(item );
}
}
panelControl1.Visible = false;
}
โค้ดหายไปเยอะเลยแต่ได้ผลเหมือนกัน
ปล.อย่าลืมตั้งค่า this.combobox_receive_material.DataPropertyName
Date :
2015-09-24 13:52:54
By :
lamaka.tor
DataPropertyName เอาไว้ทำอะไรหรอครับ
Date :
2015-09-24 13:57:43
By :
phuriwat
ถ้าไม่ได้ใช้ BindingSource ก็ไม่เป็นรายครับ
นึกว่าผูก datagrid เข้ากับ BindingSource
Date :
2015-09-24 14:22:45
By :
lamaka.tor
ครับ ขอบคุณมากครับ
Date :
2015-09-24 14:37:21
By :
phuriwat
มีโอากาสได้เขียน
Code
Date :
2015-09-24 15:56:30
By :
mr.win
สุดยอดเลยครับ
Date :
2015-09-24 16:17:13
By :
phuriwat
Load balance : Server 04