Проблема в привязке списка к данным - PullRequest
0 голосов
/ 29 марта 2011

У меня есть таблица с этими полями: ID , Name

Я привязал список к таблице.

У меня вопрос: когда пользователь выбрал элемент в списке, как мне узнать, какой идентификатор у выбранного элемента?

Примечание: идентификатор не равен выбранному индексу или идентификатору элементов в списке элементов

Ответы [ 3 ]

0 голосов
/ 29 марта 2011

например.

Предположим, у вас есть DataTable dt с ID столбца и именем в нем. затем при связывании включите следующий код,

this.listbox.DataSource = dt;
this.listbox.DisplayMember = "Name";
this.listbox.ValueMember = "ID";

при чтении выбранных значений из списка

this.listbox.SelectedItem даст вам выбранное имя и

this.listbox.SelectedValue даст вам соответствующий ID

0 голосов
/ 29 марта 2011

Какой тип приложения это?ASP.net, Windows Forms, WPF?

У меня такое ощущение, что вы работаете с Windows Forms, так как другие два намного понятнее ...

Вот код для Windows FormsПриложение ... По сути, вы создаете свой собственный класс и используете его для элементов списка.В окне списка отобразятся результаты метода 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));
    }
}
0 голосов
/ 29 марта 2011

проверить это

lst.SelectedItem.Value;

ИЛИ

lst.SelectedValue;

, где lst - ListBox Cotrol

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...