【问题标题】:asp.net drop down box selected index changed event does not fire when currently selected item is clicked单击当前选定的项目时,asp.net 下拉框选择索引更改事件不会触发
【发布时间】:2016-12-30 13:28:13
【问题描述】:

这是下拉框工作方式的问题。没有点击已选择项目的事件。在 C# 或 VB 后面的 asp.net 代码中,唯一可以触发的事件是 SelectedIndexChanged。我看过类似的帖子,但我没有看到以下方式陈述的问题。

我有一种情况,出于设计目的,我想要一个下拉列表来仅在单击框时列出所有项目。此框将允许客户将产品添加到现有列表或创建新列表。我希望该框最初声明:添加到列表。但是当用户点击下拉菜单时,ADD TO LIST 会出现在下拉列表中,并且在原来的框中!

添加到列表没有任何功能,因为列表中的以下项目可以选择:创建新列表列表 A ; 列表 B ;等等

我无法在显示的下拉列表中隐藏添加到列表

如果我只是使用 Create new list 作为列表中的第一项,我无法从下拉列表中选择 Create new list,因为它已经是被选中并且不会触发 SelectedIndexChanged 事件。

应该有某种方法可以在单击已选择的项目时触发事件,或者应该有某种方法可以隐藏第一个项目而不出现在下拉列表中以及仍然出现在列表上方的框中.

我尝试使用 jquery 将 onclick 事件绑定到下拉框,我也尝试了 onchange 事件,但没有任何效果。

这是将来发布的内容还是有人有解决方法?

【问题讨论】:

  • 请发布您的代码以供参考。
  • 为什么不将“选择此处...”选项作为下拉菜单中的首选。在回发事件中,只需将SelectedIndex 设置为零,用户可以选择另一个选项,OnSelectedIndexChanged 事件将再次触发。
  • 我认为您不理解如果用户尝试选择列表中的第一项,因为它已经被选择,它永远不会到达回发事件。我找到了如下所述的解决方法。
  • 我的意思是像这样<asp:ListItem Text="Select item..." Value=""></asp:ListItem><asp:ListItem Text="Add to Project" Value="1"></asp:ListItem><asp:ListItem Text="Add to New Project" Value="2"></asp:ListItem>。现在用户总是不得不选择一个不是第一个的项目,从而触发事件。通过将第一个值留空,您可以将 RequiredFieldValidator 添加到 DropDown。
  • 我还必须遵循图形部门的风格指南。我需要网站上显示的框,并为用户提供明确的方向。因此,添加到项目作为列表中的第一项。现在,当用户单击下拉框时,用户应该会看到可用的选项,其中应包括添加到新项目(我已将其更改为创建新项目)和所有当前项目的列表。

标签: asp.net vb.net drop-down-menu dropdownbox selectedindexchanged


【解决方案1】:

经过一天半的努力,我终于想出了一个解决方案。

我无法将样式直接添加到列表项,但我可以将类添加到单个列表项。在VB中显示:

CSS

.projdropdownclass {
display: none;
}

VB

    Private Sub ProjDropDownList_DataBound(sender As Object, e As EventArgs)            Handles ProjDropDownList.DataBound
    ProjDropDownList.Items(0).Attributes("class") = "projdropdownclass"
End Sub

显示:无;隐藏下拉列表中的第一个元素。

我还是觉得VB和C#的下拉框应该有点击事件。

希望这对其他人有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-05
    相关资源
    最近更新 更多