防止回溯引导下拉列表

时间:2014-10-06 07:57:53

标签: asp.net twitter-bootstrap

我正在使用bootstrap下拉组件,对我来说,目前看起来像这样:

        <div class="dropdown">
            <button class="btn btn-default dropdown-toggle" id="btnSaukList" data-toggle="dropdown" runat="server" style="width: 100%">
                Select a Saukville contact
                <span class="caret"></span>
            </button>
            <ul id="ulSaukContact" class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu1" runat="server" style="width: 100%">
                <!--NOTE: Intentionally left blank; li's are generated by code behind to populate users from Sharepoint.-->
            </ul>
            <input id="inpSaukValue" type="hidden" />
        </div>

default code sample here - 正如你所看到的,我的结构并没有那么不同)

我的问题是,每次单击下拉项时,都会触发回发(浏览器跳转到页面顶部)。我很确定这是因为Bootstrap使用的默认代码是<button>,它总是包含一个回发。

根据有关此问题的其他SO文章,建议改为使用<input><asp:Button>。好吧,我也做不到......

  • <asp:Button>不支持开始标记和结束标记之间的文字。
  • <input>不支持data-toggle属性,这似乎是下拉列表所需要的。

我也尝试将onclick="return false;"添加到<button>无效。

我是初学者,在某种程度上是ASP.net。

更新: 这不是一个回发,它是“#”的链接,我很困惑,抱歉!

1 个答案:

答案 0 :(得分:2)

我觉得我对这个问题感到困惑,并将问题标记为回发 - 它不是。在Bootstrap的默认代码段中,每个下拉项都包含指向&#34;#&#34;的链接。单击指向该链接的链接(<a href="#">)会将浏览器发送到页面顶部。我认为这是一个页面刷新,但它实际上并没有刷新。

快速解决方法是将href="#"替换为href="Javascript:;"。如果有人有更好的解决方案,请分享......