2012-11-29 115 views
0

我有一個LinkBut​​ton,只需要在刪除函數內的Ajax-Call失敗時回發。 ajax-call調用Web方法,如果由於某種原因刪除行失敗,將引發異常。 當我拋出異常的ajax調用到達「錯誤」 - 分支(如預期的)。但是當「deleteSelectedRows」函數返回false時,回發沒有被停止。 我該如何實現這一目標?Ajax-Call失敗時停止執行Linkbutton

<asp:LinkButton ID="Delete" ClientIDMode="Static" runat="server" Text="Delete" OnClientClick="return deleteSelectedRows()" ></asp:LinkButton> 

//the jquery code 
function deleteSelectedRows() { 
     //get selected rows 
     var selectedRows = ... getting ids ... 

     var postData = "{ 'IDs':'" + selectedRows + "'}"; 
     var url = "WebMethods.aspx/DeleteRows"; 
     var status= jQuery.ajax({ 
      url: url, 
      dataType: "html", 
      async: false, 
      type: "POST", 
      data: postData, 
      contentType: "application/json; charset=utf-8", 
      success: function (msg) { 
       return true;//continue postback 
      }, 
      error: function (err) { 
       jQuery.jGrowl('Fehler: Auftragspositionen konnten nicht gelöscht werden! Möglicherweise existieren bereits Transaktionen zu dieser Auftragsposition.'); 
       //e.preventDefault(); 
       return false;//stop postback 
      } 
     }); 
     return status.status == 200;//true when delete worked, false otherwise 
    } 

編輯:這工作時,我使用的ASP:按鈕,而不是ASP的:LinkBut​​ton的...但我沒有線索,爲什麼?

回答

0

好吧,我解決了這個問題: 這個問題是由於下面的代碼,我使用的,如果他們被禁用,停止鏈接執行(也許這是別人太有用了,所以我在這裏發佈):

jQuery('.btn[onclick]').each(function() { 
    //override onclick so i can check if the link is disabled before execution 
    jQuery(this).data('onclick', this.onclick); 

    this.onclick = function (event) { 
     if (jQuery(this).hasClass('aspNetDisabled')) { //disabled link 
      return false;//prevent execution 
     }; 

     //execute link 
     jQuery(this).data('onclick').call(this, event || window.event); 
    }; 
}); 

我改變這,現在它的工作:

jQuery('.btn[onclick]').each(function() { 
    //override onclick so i can check if the link is disabled before execution 
    jQuery(this).data('onclick', this.onclick); 

    this.onclick = function (event) { 
     if (jQuery(this).hasClass('aspNetDisabled')) { //disabled link 
      return false;//prevent execution 
     }; 

     //execute link 
     var boolVal = jQuery(this).data('onclick').call(this, event || window.event); 
     return boolVal; 
    }; 
}); 

我不得不承認,這個問題不可能用我提供的信息來解決!

相關問題