我有一个列表框,其中包含在页面加载时填充的多个项目。除最后一项外,可以毫无问题地选择列表框中的每个项目。当单击该选项时,选择会自动跳转到上面的两个项目。我似乎无法理解为什么会发生这种情况。它仅在选择最后一个项目时发生。列表框位于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;
}
}
答案 0 :(得分:1)
检查您的值列表,确保没有任何重复项。我在过去看到的是您在列表中稍后选择一个值,但它是列表中较早的项目的重复值。那么所发生的是选择只是应用于第一个匹配的项目。
答案 1 :(得分:0)
如果可能,我建议你使用客户端javascript / Jquery来做到这一点 你可以将onChange事件添加到listBox并使用jquery .Show(),. Hide()方法来显示或隐藏你的面板。它也快得多。 唯一的问题是,在使用servicePanel.Visible = false时,面板是隐藏的。小组根本没有出现在页面上。