You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

asp:ListBox置于dropdown-menu类中无法展开的技术求助

问题分析

Bootstrap的dropdown-menu容器默认会和内部表单控件的原生交互产生冲突,尤其是多选ListBox这类依赖浏览器原生下拉行为的控件。你添加的event.stopPropagation()虽然能阻止下拉菜单关闭,但同时也干扰了ListBox的原生事件触发,导致无法展开选项。

解决方案

方法1:给ListBox单独绑定事件阻止冒泡

修改asp:ListBox标记,添加onclick事件阻止事件向上冒泡,既不影响下拉菜单其他交互,也能让ListBox正常展开:

<asp:ListBox runat="server" ID="lstDepartmentForDisposal" SelectionMode="Multiple" CssClass="form-control" onclick="event.stopPropagation();"></asp:ListBox>

同时可移除dropdown-menu上的onclick="event.stopPropagation()",避免全局阻止事件影响其他控件。

方法2:通过JS精准控制事件冒泡

监听dropdown菜单的点击事件,仅在点击ListBox时阻止事件冒泡,不影响其他控件:

$('.dropdown-menu').on('click', function(e) {
  if ($(e.target).closest('#lstDepartmentForDisposal').length > 0) {
    e.stopPropagation();
  }
});

方法3:替换为兼容性更好的多选组件(可选)

如果原生控件冲突难以解决,可改用Bootstrap-select这类适配Bootstrap的自定义多选组件替代原生ListBox,它和dropdown容器的兼容性更佳:

<asp:ListBox runat="server" ID="lstDepartmentForDisposal" SelectionMode="Multiple" CssClass="form-control selectpicker" data-live-search="true"></asp:ListBox>
验证步骤
  1. 应用任一方法后,点击ListBox确认选项可正常展开
  2. 测试下拉菜单的关闭逻辑(点击外部区域能否正常关闭)
  3. 验证DropDownList、按钮等其他控件功能是否正常

内容的提问来源于stack exchange,提问作者Code

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 03:17:29