C# การส่งค่า ID ไปเลือก Combobox ซึ่ง Combo ไม่ได้แสดง ID แต่แสดงเป็น Name
ทำเป็น DataSource ครับ
comboBox1.DataSource = ds.Tables[0];
comboBox1.ValueMember = "id";
comboBox1.DisplayMember = "name";
เวลาเรียกใช้งานก็ง่ายๆ เลย สมมุติมีข้อมูลดังนี้
id name
1 test1
2 test2
3 test3
จะแสดง test2 ก็ใช้ comboBox1.SelectedValue =2
Date :
2015-09-10 17:10:58
By :
Freedom
ผมลองทำแล้วครับ แต่ผมจะใช้ Event _SelectedIndexChanged ต่อด้วย พอมันทำงานแบบ DataSource มันจะเข้าไปทำงานใน Event อัตโนมัติเลยอะครับ โดยที่ไม่ได้กดเลือกเองเลย
Date :
2015-09-10 17:22:55
By :
gwangkub
Code (C#)
public void combodepart()
{
mydatadepart = myService.Select("SELECT * FROM ko_department");
comboBox1.DataSource = mydatadepart;
comboBox1.DisplayMember = "name_depart";
comboBox1.ValueMember = "id_depart";
}
ผมใช้แบบนี้ ทำไมมันถึงเข้ามาทำในนี้โดยที่ไม่ได้กดเองครับ
Code (C#)
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
}
Date :
2015-09-11 09:11:53
By :
gwangkub
Code (C#)
private void Form1_Load(object sender, EventArgs e)
{
combodepart();
this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged);
}
public void combodepart()
{
mydatadepart = myService.Select("SELECT * FROM ko_department");
comboBox1.DataSource = mydatadepart;
comboBox1.DisplayMember = "name_depart";
comboBox1.ValueMember = "id_depart";
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
}
เพราะว่า comboBox1.DataSource = mydatadepart; บรรทัดนี้มันทำให้เกิด Event ขึ้นครับ วิธีแก้คือ ย้าย Event การทำงาน จากหน้า Code Behide มาไว้หลังการทำงานของ การ Bind Datasource คัรบ
//ย้ายคำสั่งนี้ มา ไว้หลังการ Bind Data Source
this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged);
Date :
2015-09-11 09:43:39
By :
Freedom
ลองแก้ด้วยวิธีง่าย ๆ ดูก่อนก็ได้ครับ
Code (C#)
public void combodepart()
{
mydatadepart = myService.Select("SELECT * FROM ko_department");
comboBox1.DisplayMember = "name_depart";
comboBox1.ValueMember = "id_depart";
comboBox1.Enable=false;
comboBox1.DataSource = mydatadepart;
comboBox1.Enable=true;
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (comboBox1.Enable==true)
{
//========
}
}
Date :
2015-09-11 10:21:37
By :
fonfire
ขอบคุณพี่ทุกคนครับ ลองทำตามแล้วได้แล้วครับ
Date :
2015-09-11 11:19:28
By :
gwangkub
Load balance : Server 00