[.net] ASP 버튼에서 포스트 백을 비활성화하는 방법

ASP 버튼이 있습니다. 서버 측이므로 로그인 한 사용자에게만 표시 할 수 있지만 자바 스크립트 함수를 실행하고 싶을 때 runat = “server”인 경우 항상 포스트 백 이벤트를 호출합니다.

또한 <input...서버에서 실행되지 않는 일반 버튼 ( >) 이 있으며 정상적으로 작동합니다 …

이 버튼으로 자바 스크립트 만 실행하고 포스트 백하지 않도록하려면 어떻게해야합니까?



답변

완료되면 자바 스크립트가 false를 반환하도록합니다.

<asp:button runat="server".... OnClientClick="myfunction(); return false;" />


답변

YourButton.Attributes.Add("onclick", "return false");

또는

<asp:button runat="server" ... OnClientClick="return false" />


답변

jquery 클릭 동작을 사용하고 preventDefault () 함수를 사용하여 포스트 백을 피할 수 있습니다

<asp:button ID="btnMyButton" runat="server" Text="MyButton" />


$("#btnMyButton").click(function (e) {
// some actions here
 e.preventDefault();
}


답변

이걸 고려하세요.

<script type="text/javascript">
Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequest);
function BeginRequest(sender, e) {
    e.get_postBackElement().disabled = true;

}
     </script>


답변

다른 것들은 당신이 거짓을 돌려주기 위해 당신의 콜백이 필요하다는 것입니다. 그러나 onclick을 설정하여 작업을 수행하는 것은 못생긴 오래된 방법이라고 덧붙이고 싶습니다. 방해받지 않는 자바 스크립트 에 대해 읽는 것이 좋습니다 . jQuery 와 같은 라이브러리를 사용하면 인생을 더 편하게 할 수 있고 HTML이 자바 스크립트에 덜 결합 될 수 있습니다 ( 현재 jQuery 는 Microsoft 에서 지원합니다 !)


답변

ASP.NET은 항상 생성 asp:Buttonint로서 input type=submit.
게시물을하지 않지만 서버 측의 요소에 대한 제어가 필요한 버튼을 원하면 속성 type=button및을 사용하여 간단한 HTML 입력을 만드십시오 runat=server.

을 수행하는 클릭 동작을 비활성화하면 다음 OnClientClick=return false과 같은 함수를 만들지 않는 한 클릭시 아무것도 수행되지 않습니다.

function btnClick() {
    // do stuff
    return false;
}


답변

사용중인 .NET 프레임 워크의 버전을 말하지 않습니다.

v2.0 이상을 사용하는 경우 버튼의 onclick 이벤트가 발생하면 OnClientClick 속성을 사용하여 Javascript 함수를 실행할 수 있습니다.

서버 포스트 백이 발생하지 않도록 false하려면 호출 된 JavaScript 함수에서 리턴 하면됩니다.