我正在使用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。
更新: 这不是一个回发,它是“#”的链接,我很困惑,抱歉!
答案 0 :(得分:2)
我觉得我对这个问题感到困惑,并将问题标记为回发 - 它不是。在Bootstrap的默认代码段中,每个下拉项都包含指向&#34;#&#34;的链接。单击指向该链接的链接(<a href="#">
)会将浏览器发送到页面顶部。我认为这是一个页面刷新,但它实际上并没有刷新。
快速解决方法是将href="#"
替换为href="Javascript:;"
。如果有人有更好的解决方案,请分享......