在我的ascx中,我有一个列表框控件定义为:

<asp:ListBox id="Listbox1" rows="1" runat="server" AutoPostBack="True" OnSelectedIndexChanged="btn_click" />


在我的ascx.cs中,用以下命令填充列表框:

Listbox1.Items.Add(new ListItem("textVar", "valueVar"));


我正在尝试通过以下方式读取所选值:

label1.Text = Listbox1.SelectedValue.ToString();


但这会在Label1.Text中导致一个空字符串。有任何想法吗?我仍然对.NET和C#还是陌生的,因此,如果这很初级,我深表歉意。似乎应该很简单。任何帮助将不胜感激。

最佳答案

有任何想法吗?


是的,我假设您在每次回发中都对ListBox进行数据绑定。仅执行if(!IsPostBack),否则将不会触发SelectedIndexChanged

protected void Page_Load(Object sender, EventArgs e)
{
    if(!IsPostBack)
    {
        Listbox1.Items.Clear();
        Listbox1.Items.Add(new ListItem("textVar", "valueVar"));
    }
}

10-08 00:04