我的想法是当用户未登录时,他将无法将商品添加到购物车中,因此我所做的是:
<asp:Button ID="BTNAddToCart" runat="server" Text="Add to cart" class="btn btn-info btn-lg" style="display: inline; margin: auto; display: block; visibility: hidden;" OnClick="BTNAddToCart_Click" />
然后在代码后台:
if (Session["User"] == null)
{
BTNAddToCart.Attributes["class"] = "btn btn-info btn-lg disabled";
BTNAddToCart.Attributes.Add("title", "Error");
BTNAddToCart.Attributes.Add("data-toggle", "popover");
BTNAddToCart.Attributes.Add("data-trigger", "hover");
BTNAddToCart.Attributes.Add("data-placement", "bottom");
BTNAddToCart.Attributes.Add("data-content", "You must be loged in to add items to the cart");
}
您可以看到,通过使用Bootstrap,我使按钮看起来无法点击,但实际上它仍然是可点击的。
因此,我认为如果禁用按钮的回发,它就真的无法被点击。
如何禁用按钮的回发?
我尝试过:
<asp:Button ID="BTNAddToCart" runat="server" Text="Add to cart" class="btn btn-info btn-lg" style="display: inline; margin: auto; display: block; visibility: hidden;" OnClientClick="BTNJavaScriptClick()" OnClick="BTNAddToCart_Click" />
<script>
function BTNJavaScriptClick()
{
var ButtonAdd = document.getElementById("BTNAddToCart");
if (ButtonAdd.className == "btn btn-info btn-lg disabled")
return false;
}
</script>
我甚至尝试了BTNAddToCart.Enabled = false;
,它可以正常工作,但会使我的弹出窗口消失。