2016-07-03 22 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"); 
} 

あなたが見ることができるように、ブートストラップを使用して、私はボタンを、彼はクリックできません外観を与えたが、実際には彼はまだクリック可能です。

私はボタンポストバックを無効にするとmabeyは本当にクリックできないと考えました。

ボタンのポストバックを無効にするにはどうすればよいですか?

私が試してみました:

<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;を試してみました、それが働いていたが、それは私のポップオーバーのdisapperを作りました。

答えて

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属性を有効にしてボタンをポストバックすることはできません。

BTNAddToCart.Enabled = false; 

要素がある

disabledあなたは彼に所望の外観を与えるために、CSSに disabledスタイルを使用することができます。

input:disabled { 
    background: #444; 
} 

相対的なものに:ここでは簡単な例である Styling a disabled input with css only

+0

ありがとうございました!それは働いています:) – harel486

+0

もう一つ、それは私がボタンを与えた "スタイル"をキャンセルすることによって(popover)どうすればそれらを動作させることができますか? – harel486

+0

@ harel486 http://www.w3schools.com/cssref/sel_disabled.aspで無効になっているスタイルを参照してください。あなたのために投票して回答を受け入れてください。 – Aristos

関連する問題