asp.net listbox против winforms listbox - PullRequest
0 голосов
/ 17 ноября 2009

Следующий код для winforms:

public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            listBox1.DataSource = Fruit.Get();
            listBox1.DisplayMember = "Name";
            listBox1.ValueMember = "ID";
        }

        private void listBox1_Click(object sender, EventArgs e)
        {
            object li = listBox1.SelectedItem;

            Fruit fr = (Fruit) li;

            label1.Text = fr.Name;
        }
    }

Можно ли использовать ту же технику в asp.net?

Если нет, то какова альтернатива?

Ответы [ 2 ]

2 голосов
/ 17 ноября 2009

Нет, это невозможно в ASP.NET.

В качестве альтернативы, вы можете хранить свои фрукты в коллекции Dictionary , и вы можете получить выбранный вами фрукт вот так:

// Assume that your datasource is Dictionary<string, Fruit> myFruits
Fruit fr = myFruits[listBox1.SelectedValue];
0 голосов
/ 17 ноября 2009

Я не думаю, что вы можете сделать это точно так, так как я довольно ржавый в winforms, но вот как я бы попробовал это в asp.net

1.) Свяжите свой список в Page_PreRender ()

listBox1.DataSource = Fruit.Get();<br> listBox1.DataTextField = "Name";<br> listBox1.DataValueField = "ID";<br> listBox1.DataBind();

2.) Я не уверен, что будет эквивалентным событием "OnClick", но вы можете подключиться к событию SelectedIndexChanged, как показано ниже (запускается другой кнопкой):

var li = listBox1.SelectedItem;<br> label1.Text = li.Text;

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