以下代码适用于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中使用相同的技术?
如果不是,那么替代方案是什么?
答案 0 :(得分:2)
不,这在ASP.NET中是不可能的。
作为替代方案,您可以将水果项目存储在Dictionary< string,Fruit>收集,你可以得到你选择的水果:
// Assume that your datasource is Dictionary<string, Fruit> myFruits
Fruit fr = myFruits[listBox1.SelectedValue];
答案 1 :(得分:0)
我认为你不能这样做完全因为我在winforms中相当生气,但这是我在asp.net中尝试的方式
1。)将您的列表框绑定在Page_PreRender()
中
listBox1.DataSource = Fruit.Get();
listBox1.DataTextField = "Name";
listBox1.DataValueField = "ID";
listBox1.DataBind();
2。)我不确定等效的“OnClick”事件是什么,但你可以像这样挂钩到SelectedIndexChanged事件(由另一个按钮触发):
var li = listBox1.SelectedItem;
label1.Text = li.Text;