2009-10-31 3 views
1

내가 클릭시 버튼을 비활성화하고 내 서버 사이드 이벤트가 지금 내 코드는 다음과해제 및

<script src="../Scripts/jquery-1.3.2.js" type="text/javascript"></script> 
<script type ="text/javascript" > 


$(document).ready(function(){ 
    $('.saveButton').bind("click", function(e) { 
     $(this).attr("disabled", "true"); 
     return true; //causes the client side script to run. 
    }); 
}); 
</script> 
//this works finr for disableing the button 
//how to enable the button from disabled to enable after my server side event as executed 

<asp:Button ID="Button1" runat="server" CssClass="saveButton" Text="Button" 
     onclick="Button1_Click" /> 
<asp:Button ID="Button2" runat="server" CssClass="saveButton" Text="Button" 
      onclick="Button2_Click" /> 

//Server side events 
protected void Button1_Click(object sender, EventArgs e) 
{ 
    try 
    { 
    } 
    catch() 
    { 
    } 
    finally 
    { 
     //once my control reaches here i need to enable my save from disabled to enabled stae 
     // can we do this in jQuery 
    } 
} 

이 찾고처럼 보이는 을 수행 한 후 활성화해야 할 필요가 서버 이벤트 후 JQuery와에있는 버튼을 사용 여기에 대한 해결책은 좋은 것 과거 2 일에서 코드

답변

3

당신은 서버 측에서 클라이언트 스크립트를 추가하려면 Button1_Click 이벤트에 RegisterClientScriptBlock 방법을 사용할 수 있습니다 당신을 감사합니다 감사합니다 :

,
var enableButton = "$('.saveButton').removeAttr('disabled');"; 
Page.ClientScript.RegisterClientScriptBlock(this.Page.GetType(), "EnableButton", 
              enableButton, true); 
0

여기서 핵심적인 문제는 페이지 수명주기에 대한 이해입니다. 여기 http://msdn.microsoft.com/en-us/library/ms178472.aspx에서 읽을 수 있습니다.

반드시 페이지를 다시 게시하고 싶지는 않은 것 같습니다. jQuery ajax를 사용하여 서버를 업데이트하고 해당 콜백에서 버튼을 다시 활성화하십시오. 또한

, 문제는이 같은 문자 제어 무언가로 쓰기 귀하의 버튼 클릭 이벤트의 끝에서() 다시 게시 후 (희망!)

$(document).ready(function() 
    { $('.saveButton').bind("click", function(e) { 
         $(this).attr("disabled", "true"); 
         setTimeout(function(){$(this).removeAttr("disabled");}, 5000); 
         return true; 
         }); 
    }); 

5 초 후에 버튼을 다시 사용하거나 사용합니다 : "$ (document) .ready (function() {$ ('jQueryButtonSelector'). removeAttr ('disabled');});"

또는 같은 사용을 Response.Write을()는

+1

이봐, 여기에서 무슨 일이 일어나고은 버튼을 한 번 내가 내 서버 측 호출되지 않은 지금 button.but를 클릭하여 장애인의 벌금을 받고있다 이벤트 만 보호 된 무효 Button1_Click (개체 보낸 사람, EventArgs 전자) { /// 내 코드 } – happysmile

0

내가 비동기 버튼을 비활성화 해결하기 위해,하지 장애인 번 서버 측 이벤트를 호출하는 다른 답변에 문제가 다 퉜다.

클라이언트

<asp:Button runat="server" ID="submitButton" ValidationGroup="DynamicForm" OnClientClick="disableButton(this);" /> 
<script> 
    function disableButton(sender) { // Disable to prevent duplicate submission. Enabled in code behind 
     if (Page_ClientValidate("DynamicForm")) { 
      setTimeout(function() { $('#<%= submitButton.ClientID%>').attr("disabled", "true"); }, 0); // Asynchronously disable, otherwise disabled button won't submit first time 
     } 
    } 
</script> 

서버

Private Sub submitbutton_Click(sender As Object, e As EventArgs) Handles submitButton.Click 
    ... 
    Page.ClientScript.RegisterClientScriptBlock(Page.GetType(), "EnableButton", "$('#" + submitButton.ClientID + "').removeAttr('disabled');", True) 
End Sub