列表框中的选择未保持选定状态

时间:2013-03-08 15:10:27

标签: c# asp.net listbox

我有一个列表框,其中包含在页面加载时填充的多个项目。除最后一项外,可以毫无问题地选择列表框中的每个项目。当单击该选项时,选择会自动跳转到上面的两个项目。我似乎无法理解为什么会发生这种情况。它仅在选择最后一个项目时发生。列表框位于ajax选项卡容器中的更新面板中,但我不明白为什么会产生影响。我真的希望我不会错过任何明显的东西......

列表框:

 <asp:ListBox ID="availableServicesListBox" 
    runat="server" 
    class="formListBox" 
    AutoPostBack="True" 
    onselectedindexchanged="availableServicesListBox_SelectedIndexChanged"> 
 </asp:ListBox>

页面加载事件:

if (!Page.IsPostBack)         
{
      //populate from database    
}

selectedIndex更改了事件(用于autopostback):

protected void availableServicesListBox_SelectedIndexChanged(object sender, EventArgs e)
{
   if (availableServicesListBox.SelectedValue.Length > 10)
   {
      servicePanel.Visible = true;
      activePanel.Visible = true;                
   }

   else
   {
      servicePanel.Visible = false;
   }
}

2 个答案:

答案 0 :(得分:1)

检查您的值列表,确保没有任何重复项。我在过去看到的是您在列表中稍后选择一个值,但它是列表中较早的项目的重复值。那么所发生的是选择只是应用于第一个匹配的项目。

答案 1 :(得分:0)

如果可能,我建议你使用客户端javascript / Jquery来做到这一点 你可以将onChange事件添加到listBox并使用jquery .Show(),. Hide()方法来显示或隐藏你的面板。它也快得多。 唯一的问题是,在使用servicePanel.Visible = false时,面板是隐藏的。小组根本没有出现在页面上。