在我的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#的新手,所以如果这是初步的,我会道歉。看起来它应该是一件简单的事情。任何帮助都会受到赞赏。
答案 0 :(得分:4)
有什么想法吗?
是的,我假设您在每次回发时都是ListBox
的数据绑定。只执行if(!IsPostBack)
,否则不会触发SelectedIndexChanged
。
protected void Page_Load(Object sender, EventArgs e)
{
if(!IsPostBack)
{
Listbox1.Items.Clear();
Listbox1.Items.Add(new ListItem("textVar", "valueVar"));
}
}