我有一张包含以下字段的表:ID , Name
我已将列表框绑定到表格中。
我的问题是,当用户在列表框中选择了一个项目时,我如何找出所选项目的ID是什么?
注意:id不等于项目列表中项目的selectedindex或id
答案 0 :(得分:0)
测试它
lst.SelectedItem.Value;
OR
lst.SelectedValue;
其中lst是ListBox Cotrol
答案 1 :(得分:0)
e.g。
假设您有一个DataTable dt,其中包含列ID和名称。 然后绑定时包括以下代码,
this.listbox.DataSource = dt;
this.listbox.DisplayMember = "Name";
this.listbox.ValueMember = "ID";
在读取列表框的选定值时,
this.listbox.SelectedItem
会为您提供所选名称和
this.listbox.SelectedValue
会给你相应的ID
答案 2 :(得分:0)
这是什么类型的应用程序? ASP.net,Windows Forms,WPF?
我觉得你正在使用Windows Forms,因为其他两个更清晰......
以下是Windows窗体应用程序的一些代码...基本上,您创建自己的类,并将其用于列表项。列表框将显示ToString()方法的结果,因此覆盖它以获取您想要显示的值。当您访问ListBox.SelectedItem时,它将是您定义的类的实例,并且您可以访问所需的任何属性:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
MyListItem item1 = new MyListItem("Java", 1);
MyListItem item2 = new MyListItem("C#", 221);
MyListItem item3 = new MyListItem("C++", 13);
listBox1.Items.Add(item1);
listBox1.Items.Add(item2);
listBox1.Items.Add(item3);
}
private class MyListItem
{
public string ItemName { get; set; }
public int ItemId { get; set; }
public MyListItem(string name, int id)
{
this.ItemName = name;
this.ItemId = id;
}
public override string ToString()
{
return this.ItemName;
}
}
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
MyListItem selectedItem = (MyListItem)listBox1.SelectedItem;
MessageBox.Show(string.Format("Name is: {0}, Id is: {1}", selectedItem.ItemName, selectedItem.ItemId));
}
}