1

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

列表框:

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

页面加载事件:

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

selectedIndex 更改事件(用于自动回发):

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

   else
   {
      servicePanel.Visible = false;
   }
}
4

2 回答 2

1

检查您的值列表并确保您没有任何重复项。我过去看到的是您在列表的后面选择了一个值,但它是列表中前面项目的重复值。所以发生的事情是选择简单地应用于第一个匹配项。

于 2013-03-08T15:59:06.930 回答
0

如果可能的话,我建议您使用客户端 javascript/Jquery 来执行此操作,您可以将 onChange 事件添加到您的 listBox 并使用 jquery .Show()、.Hide() 方法来显示或隐藏您的面板。它也快得多。唯一的问题是面板在视图中隐藏,同时使用 servicePanel.Visible = false; 面板根本没有出现在页面上。

于 2013-03-08T15:31:13.933 回答