在我的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"));
}
}