2016-07-03 62 views
4

我的想法是,当用户未在loged他将无法将项目添加到购物车,所以我所做的就是像这样:禁用asp.net按钮的回发

<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"); 
} 

正如你所看到的,通过使用引导我给了按钮,他不能被点击,但在现实中,他仍然是可点击的外观。

所以我认为,马比,如果我将禁用按钮回发它真的不会点击。

如何禁用按钮回发?

我曾尝试:

<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;和它的工作,但它让我酥料饼即消失。

回答

1

如果您希望按钮,当鼠标在它做出反应(例如显示工具提示),而点击时不会触发回传,您可以:

  • 保持按钮启用
  • 显示该按钮为禁用自举风格
  • 防止OnClientClick
  • 防止回发通过返回false获得焦点

按钮上的代码是这样的:

if (Session["User"] == null) 
{ 
    BTNAddToCart.CssClass = "btn btn-info btn-lg disabled"; 
    BTNAddToCart.OnClientClick = "return false;"; 
    BTNAddToCart.Attributes.Add("onfocus", "this.blur();"); 
    ... 
} 
+0

我真的爱你!我一直坐在这上好几个小时! – harel486

3

你可以简单设置启用 asp.net属性为false,并且按钮不会回发。

BTNAddToCart.Enabled = false; 

当一个元素是disabled您可以使用CSS的disabled风格给他想要的样子。下面是一个简单的例子:

input:disabled { 
    background: #444; 
} 

相对于: Styling a disabled input with css only

+0

谢谢!它正在工作:) – harel486

+0

还有一件事,通过这样做,它取消了“风格”我给了按钮(popover)我怎么能使他们都工作? – harel486

+0

@ harel486请参阅css http://www.w3schools.com/cssref/sel_disabled.asp上的禁用样式,如果适合您,请投票并接受答案 – Aristos